Bu nedenle, bir veritabanı kaydı için bir eşzamanlama düğmesi oluşturabildiğim bir tablo düğmesi oluşturmak istedim (etkinleştir/devre dışı bırak). Bazı deneme yanılma sonra ASP.NET MVC'de bir AJAX geçiş resmi oluşturma
img http://i41.tinypic.com/os4vua.jpg
, almak o çalışma başarmış - ama daha zarif bir yolu olmalı gibi geliyor.- Görüntü etiketimi denetleyicimde tekrarlamaktan hoşlanmıyorum, açıkçası ... Bunu nasıl zarif bir şekilde önleyebilirim?
- Yaptığım şeye yaklaşmanın genel bir yolu var mı? ...
public ActionResult ToggleEnabled(int id) { if (Request.IsAjaxRequest()) { var p = this.PageRepository.GetPage(id); p.Enabled = p.Enabled != true; this.PageRepository.Edit(p); return p.Enabled ? Content("<img src='/Content/icons/tick.png' border=0 />") : Content("<img src='/Content/icons/tick_grey.png' border=0 />"); } return Content("Error"); }
Ve manzarası: Burada
denetleyicisi benim kodudur
<% var img = Model.Enabled ? "tick.png" : "tick_grey.png"; %>
<% foreach (var item in Model)
{ %>
...
<td align="center">
<%=Ajax.ActionLink("[replacethis]",
"ToggleEnabled",
new { id = Model.ID },
new AjaxOptions { UpdateTargetId = "toggleimage" + Model.ID }).Replace("[replacethis]",
string.Format("<div id='toggleimage{0}'><img src='/Content/icons/{1}' border='0' alt='toggle'/></div>",
Model.ID, Model.Enabled ? "tick.png" : "tick_grey.png"))%>
</td>
...
<% } %>
hüner/bir görüntü kullanılarak Ajax.Actionlink ile kesmek here bulunmuştur .
Yaptığın yolu gerçekten seviyorum. Daha basit hale getirmek için açık bir yol göremiyorum. İşaretlediğiniz gibi, görüntü mantığınız denetleyicide ve görünümde çoğaltılır, ancak sayfa yükü için mantıksal mantığa ihtiyacınız vardır ve Ajax çağrısı için denetleyicideki mantığa ihtiyacınız vardır. –
Jilet Mvc 3'te bunu yeniden yazmaya çalışıyorum, "değiştir" ile bir hata alıyorum. System.Web.MVC.MVChtmlString bir eksiklik içermiyor diyor ... – Chaka
Usturada yeniden yazmak için herhangi bir yardım? – Chaka