MVC从视图重定向到带参数的控制器

时间:2014-08-14 08:05:15

标签: javascript jquery html asp.net-mvc

我需要从视图重定向到控制器操作。 我在View中的代码看起来像这样。

<table id="tableid">
  <thead>
    <tr>
      <th id="Sno">S No</th>
      <th>Name</th>
      <th>Status</th>
      <th>Action</th>
      </tr>
  </thead>
  <tbody >
    @foreach (var sd in Model.Details)
    {

      <tr id="trid">
        <td>@sd .Id</td>
        <td>@sd .Name</td>
        <td>@sd .Status</td>
        <td>

          <a id="actionId"   onclick="Clickfn()"  >
          </a>
          <script>
            function Clickfn() {
              window.location.href = '@Url.Action("UpdateCamp", "CampDashboard", new {id =@sd .Id })'
            }
          </script>

          </td>
      </tr>
    }
  </tbody>
</table>

代码返回@sd .Id的最后一个Id,同时点击tag..how获取特定的单元格值(存在标记的单元格。)

3 个答案:

答案 0 :(得分:2)

您可以使用a属性将值附加到data元素,然后您可以在click处理程序中使用该属性:

@foreach (var sd in Model.Details)
{
    <tr id="trid">
        <td>@sd .Id</td>
        <td>@sd .Name</td>
        <td>@sd .Status</td>
        <td>
            <a id="actionId" data-id="@sd.Id" href="#"></a>
        </td>
    </tr>
}
$('#tableid a').click(function(e) { 
  e.preventDefault();
  window.location.href = '@Url.Action("UpdateCamp", "CampDashboard")?id=' + $(this).data('id');
}

答案 1 :(得分:1)

您应该使用Html.ActionLink返回包含指定操作的虚拟路径的锚元素(元素)。

<td>
  @Html.ActionLink(sd.Name, "UpdateCamp", "CampDashboard", new {id = @sd.Id})
</td>

OR

您无法将JavaScript变量传递给Url.Action。进一步的Url.Action函数将呈现一个字符串。你应该替换字符串。

您应该将@sd.Id作为参数传递给Clickfn()

使用

@foreach (var sd in Model.Details)
 {
    <td>
    <tr>
    <a id="actionId" onclick="Clickfn(@sd.Id)"></a>
    </td>
    </tr>
 }
<script>
    function Clickfn(id) {
        var url = '@Url.Action("UpdateCamp", "CampDashboard", new {id = -1})'; //Generate URL string using razor
        window.location.href = url.replace('-1', id); //replace ID value
    }
</script>

答案 2 :(得分:0)

将锚标记更正为: -

<a id="actionId" onclick="Clickfn(@sd.Id)" >

并将Clickfn更改为:

 <script>
    function Clickfn(Id) {
     window.location.href ="/CampDashboard/UpdateCamp?id" + Id;
    }
 </script>