2014-09-23 2 views
0

У меня есть частичный вид, который выводит список редакторов. Каждый редактор в списке имеет ссылку удалить, которая называется использованием @Ajax.actionlink, как это:ASP.NET MVC AJAX actionlink внедряет атрибут onclick

if(Model.Any()){ 
    <ul> 
     @foreach (var editor in Model) 
     { 
      <li>@editor.firstName @editor.lastName, @editor.emailAddress (@Ajax.ActionLink("Delete", "DeleteEditor", "EditorSurface", new { editorId = editor.id }, new AjaxOptions()))</li> 
     } 
    </ul> 
} 

Я включил @using System.Web.Optimization; на мой взгляд, и звоню Jquery ненавязчивый АЯКС сценарий из моей точки зрения тоже:

@Scripts.Render("~/scripts/jquery.unobtrusive-ajax.min.js") 

вопрос заключается в том, что при просмотре источника, тонированная наценка для моего редактора элементов списка, как это:

<li>John Smith, [email protected] (<a href="/umbraco/Surface/EditorSurface/DeleteEditor?editorId=32" onclick="Sys.Mvc.AsyncHyperlink.handleClick(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace });">Delete</a>)</li> 

Я был немного disappoi чтобы увидеть встроенный JavaScript в ссылках удаления и надеялся на что-то немного «более чистого» (возможно, атрибуты данных или что-то еще?). Мне кажется, что это будет трудно зацепить (предоставить подтверждающие сообщения и т. Д.).

Вопрос в том, является ли ожидаемым выходом AJAX в ASP.NET MVC? Я очень новичок в этом, поэтому не уверен, что я делаю что-то не так в моей реализации.

Большое спасибо.

ответ

0

Да, это наценка, которую производит семья помощников Ajax.*. Моя рекомендация в целом и особенно в свете того, что вы не хотите добавлять атрибуты on*, заключается в том, чтобы избежать этих помощников, таких как чума. У вас будет намного более чистая и удобная (хотя и немного более подробная) обработка кода AJAX самостоятельно, т. Е. Просто добавьте стандарт Html.ActionLink, а затем используйте jQuery для присоединения обработчика событий, который вызывает AJAX. Плюс, когда что-то пойдет не так, как это почти неизбежно, у вас есть полное знание и контроль над JavaScript, который работает, а не быть во власти некоторых самоуверенных разработчиков Microsoft.