MVC返回视图无效,在@RenderBody之后,视图重置为上一个视图

时间:2016-09-08 14:35:35

标签: asp.net-mvc twitter-bootstrap asp.net-mvc-5

我有一个带有一些代码的视图(viewOne):

$('#btnNext').on('click', function () {
    var id = $('#ID').val();
    window.location.href = '@Url.Action("myAction", "myController")/?id=' + id;
...

在myController中:

public ViewResult myAction(string id)
{
    //get model from id
    return View("viewTwo", model);
}

在viewTwo中:

<tbody>
    @foreach (var c in Model)
    {
       <tr class="table-row ">
           ...        
           <td>
              <div>@Html.DisplayFor(m=>c.Name)</div>
           </td>
           ...
       </tr>
    }
</tbody>

我的问题:

单步执行控制器后返回View(“viewTwo”,型号);然后在viewTwo中逐步throgh @foreach循环,然后在_Layout.cshtml中进一步跨过@RenderBody(),重新加载viewOne,而不是diplay viewTwo!

任何帮助非常感谢!

2 个答案:

答案 0 :(得分:0)

您已使用 window.location.href ,它会以第二个视图加载页面,因此您的第一个视图会重新加载。

使用 AJAX调用,只需追加第二个视图到您可用的HTML

答案 1 :(得分:0)

单击表单中的<button type='submit'>将导致表单/页面/视图发布+重新加载。

在这种情况下,<button>没有type=submit,但没有任何默认提交的type=

添加类型以停止默认提交行为:

<button type='button' ...

此页面的更多信息:https://developer.mozilla.org/en/docs/Web/HTML/Element/button

  

型   按钮的类型。可能的值有:

     
      
  • submit:该按钮将表单数据提交给服务器。如果未指定属性,或者属性动态更改为空值或无效值,则这是默认值。
  •   
  • reset:该按钮将所有控件重置为初始值。
  •   
  • 按钮:该按钮没有默认行为。它可以具有与元素事件关联的客户端脚本,这些事件在事件发生时触发。
  •   
  • 菜单:该按钮打开一个通过其指定元素定义的弹出菜单。
  •