我有一个带有一些代码的视图(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!
任何帮助非常感谢!
答案 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:该按钮将所有控件重置为初始值。
- 按钮:该按钮没有默认行为。它可以具有与元素事件关联的客户端脚本,这些事件在事件发生时触发。
- 菜单:该按钮打开一个通过其指定元素定义的弹出菜单。