【问题标题】:Confirmation for Url.Action in razorrazor 中 Url.Action 的确认
【发布时间】:2013-07-09 13:32:02
【问题描述】:

您好,我在 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>

然而,onclick 属性并未评估,而是作为参数传递。如何实现确认?

【问题讨论】:

标签: javascript asp.net-mvc razor


【解决方案1】:

你放错地方了。现在您已将它作为参数传递给 Url.Action 帮助器,而它应该是一个单独的属性,与定义 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>
)

【讨论】:

  • 非常感谢亲爱的达林 :) 完全错过了!!
  • 谢谢你的工作:) 你能告诉我为什么我们需要这个助手吗?与锚标签相比有什么优势吗?
  • 是的,有很多优点:服务器端助手将负责正确编码所有数据。
  • 嗨达林还有一个问题,如果我需要这个 url.Action 在按钮中,我该如何确认。例如:&lt;input style="float:left" type="button" title="Back to Book List" value="Back to Book List" onclick="location.href='@Url.Action("EditBookByID", "Books", new { bookID = item.BookDetailsID, CreatedBy = item.UserID })'" /&gt;
  • 像这样:&lt;input style="float:left" type="button" title="Back to Book List" value="Back to Book List" onclick="if (confirm('Are you sure you want to Edit?')) { window.location.href='@Url.Action("EditBookByID", "Books", new { bookID = item.BookDetailsID, CreatedBy = item.UserID })'; }" /&gt;.
【解决方案2】:

通过将“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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    相关资源
    最近更新 更多