【问题标题】:Create a action link inside a ASP.NET MVC 3 form在 ASP.NET MVC 3 表单中创建操作链接
【发布时间】:2012-03-22 13:50:06
【问题描述】:
@using (Html.BeginForm("AbuseReportInfo", "Admin",  new {id = @Model.Id, verify = true }))
{
    <div class="cashOutHistory-item-header">
         @Html.ActionLink(@Model.Material.Name, "Details", "Material", new { id = Model.Material.Id }, null)
    </div>
    <div class="cashOutHistory-item-header">
        Subject:
    </div>
    <div>
        <span class="cashOutHistory-item">
            @Html.DisplayFor(model => model.Subject)
        </span>
    </div>
    <div class="cashOutHistory-item-header">
        Description</div>
    <div>
        <span class="cashOutHistory-item">
            @Html.DisplayFor(model => model.Description)
        </span>
    </div>
    <p> 
        <input type="submit" id="btnVerify" name="btnVerify" value="Discard" />
    </p>
    <p>
        @Html.ActionLink("Back to List", "Index")
    </p>
}

创建动作链接时:

@Html.ActionLink(@Model.Material.Name, "Details", "Material", new { id = Model.Material.Id }, null)

页面加载时链接不可点击。

但是当把动作链接放在下面时:

@Html.ActionLink("Back to List", "Index")

链接有效。

这是为什么?我希望链接能够在其最初放置的位置工作。

【问题讨论】:

  • 第一个示例中生成了什么 HTML?
  • 通过某些选择器附加的某些 javascript 正在取消重定向事件?

标签: c# .net asp.net-mvc-3 html-helper actionlink


【解决方案1】:

正如@Giredrius 在 cmets 中提到的那样,一些 javascript 代码很有可能会取消点击事件,尝试更改 id 或名称以进行测试,例如

@Html.ActionLink("test name", "Details", "Material", new { id = "TestId_1"}, null)

如果上面的代码可以确认是否存在取消 js 代码,则在您的 js 文件中搜索该代码

【讨论】:

    【解决方案2】:

    我认为您不需要第二个@ 登录此行:

    @Html.ActionLink(@Model.Material.Name, "Details", "Material", new { id = Model.Material.Id }, null) 
    

    改成:

    @Html.ActionLink(Model.Material.Name, "Details", "Material", new { id = Model.Material.Id }, null) 
    

    您已经在带有@Html 的 Razor 解析器中,因此第二个标记可能会脱离解析器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-26
      • 1970-01-01
      • 2017-06-20
      • 1970-01-01
      • 1970-01-01
      • 2021-07-19
      • 1970-01-01
      相关资源
      最近更新 更多