Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET MVC AJAX actionlink注入onclick属性_Asp.net Mvc_Asp.net Ajax_Actionlink - Fatal编程技术网

Asp.net mvc ASP.NET MVC AJAX actionlink注入onclick属性

Asp.net mvc ASP.NET MVC AJAX actionlink注入onclick属性,asp.net-mvc,asp.net-ajax,actionlink,Asp.net Mvc,Asp.net Ajax,Actionlink,我有一个局部视图,它输出一个编辑器列表。列表中的每个编辑器都有一个删除链接,使用@Ajax.actionlink调用该链接,如下所示: if(Model.Any()){ <ul> @foreach (var editor in Model) { <li>@editor.firstName @editor.lastName, @editor.emailAddress (@Ajax.ActionLink("Del

我有一个局部视图,它输出一个编辑器列表。列表中的每个编辑器都有一个删除链接,使用
@Ajax.actionlink
调用该链接,如下所示:

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>
}
<li>John Smith, johnsmith@example.com (<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>
问题是,当我查看源代码时,编辑器列表项的渲染标记如下所示:

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>
}
<li>John Smith, johnsmith@example.com (<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>
约翰·史密斯,johnsmith@example.com() 我对删除链接中的内联JavaScript感到有点失望,并希望它更“干净”(可能是数据属性之类的?)。我觉得这很难(提供确认消息等)

问题是,这是ASP.NET MVC中AJAX的预期输出吗?我对此很陌生,所以不确定我的实现中是否做错了什么


非常感谢。

是的,这是
Ajax.*
助手系列产生的标记。一般来说,我的建议,尤其是考虑到您不希望添加*属性上的
,是为了避免像瘟疫这样的帮手。您将拥有更干净、更可维护(尽管更详细)的代码来处理AJAX,也就是说,只需添加一个标准的
Html.ActionLink
,然后使用jQuery附加一个调用AJAX的事件处理程序。此外,当出现问题时(几乎不可避免),您可以完全了解并控制正在运行的JavaScript,而不是任由一些固执己见的Microsoft开发人员摆布