Javascript razor中Url.Action的确认

Javascript razor中Url.Action的确认,javascript,asp.net-mvc,razor,Javascript,Asp.net Mvc,Razor,嗨,我正在gridview中使用编辑按钮。我需要一个确认按钮,然后再调用该操作 grid.Column("","",format:@<text>@if(!item.IsBookPublished) { <text> <a href='@Url.Action("EditBookByID","Books", new {BookID = @item.BookDetailsID, CreatedBy = @item.UserID , onclick = "return c

嗨,我正在gridview中使用编辑按钮。我需要一个确认按钮,然后再调用该操作

grid.Column("","",format:@<text>@if(!item.IsBookPublished)
{
 <text> <a href='@Url.Action("EditBookByID","Books", new {BookID = @item.BookDetailsID, CreatedBy = @item.UserID , onclick = "return confirm('Are you sure you want to Edit?')" })'>Edit</a></text>
 }
 </text>
grid.Column(“,”,格式:@@if(!item.IsBookPublished)
{
}

但是,onclick属性没有计算,而是作为参数传递。如何实现确认?

您将其放置在错误的位置。现在您将其作为参数传递给Url.Action helper,而它应该是一个单独的属性,与您定义href属性的方式相同:

<a href="@Url.Action("EditBookByID", "Books", new { bookID = item.BookDetailsID, CreatedBy = item.UserID })" onclick="return confirm('Are you sure you want to Edit?')">Edit</a>

顺便说一下,你应该考虑使用帮助器:

grid.Column("", "", format:
    @<text>
        @if(!item.IsBookPublished)
        {
            Html.ActionLink(
                "Edit", 
                "EditBookByID", 
                "Books",
                new { bookID = @item.BookDetailsID },
                new { onclick = "return confirm('Are you sure you want to Edit?')" }
            )
        }
    </text>
)
grid.Column(“,”),格式:
@
@如果(!item.IsBookPublished)
{
Html.ActionLink(
“编辑”,
“EditBookByID”,
“书籍”,
新建{bookID=@item.BookDetailsID},
新建{onclick=“return confirm('您确定要编辑吗?')”}
)
}
)

将“onclick”放在Url.Action助手中,就是告诉它将其转换为Url参数

相反,您要做的是将onclick放在助手外部,如下所示:

<a href='@Url.Action("EditBookByID","Books", new {BookID = @item.BookDetailsID, CreatedBy = @item.UserID  })' onclick = "return confirm('Are you sure you want to Edit?')">
    Edit
<a>

编辑

您可以使用jQuery将onclick事件管理到href。在`标记中,您可以在属性中存储bookID。JavaScript事件函数只需阅读此内容,显示确认对话框,并在确认后重定向到操作。感谢Robert成功,miss将onclick放置在对象属性中(请参阅Darins和Ryan的答案)。不过,我想确认一下,在chrome和所有点击几下之后,我们可以禁用警报。之后会发生什么?非常感谢亲爱的Darin:)完全错过了!!谢谢你的帮助:)你能告诉我为什么我们需要这个帮手吗?与锚定标记相比有什么优势吗?是的,有很多优势:服务器端助手将负责正确编码所有数据。嗨,Darin,还有一个问题,如果我需要此url。按钮中的操作,我如何进行确认。例如:
像这样: