MVC 如何将_layout文件中的单个值发布到控制器
本文关键字:单个值 控制器 文件 layout MVC | 更新日期: 2023-09-27 18:34:33
这是_layout文件:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
...
<div class="container body-content">
@RenderBody()
<input type="submit" name="pageSize" value="12" />
<hr />
<footer>
<p>© @DateTime.Now.Year - Test co. ltd.</p>
</footer>
</div>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
@RenderSection("scripts", required: false)
</body>
</html>
正如你所看到的,我添加了一个名为pageSize的输入,我需要做的是当用户单击pageSize按钮时,"12"将被发布到控制器,我正在考虑通过查询字符串发布"12"(i.e. when the user clicks the button, the url will be changed to www.myurl.com/propertyReport?pageSize=12)
目前,该按钮显示在页面中,但单击该按钮时没有任何操作。如何向按钮添加操作,以便将"12"传递给控制器?
请注意,我不想在单击按钮后重定向到另一个页面,我想将 12 发布回控制器并保留现有 url(即像这样:www.myurl.com/propertyReport?userID=123&from=20150201&pageSize=12
(
更新:
根据Stephen Muecke和Ivan的评论建议,我添加了一个Ajax.beginForm来环绕按钮:
@using (Ajax.BeginForm("Options", "Shared", new AjaxOptions() { HttpMethod = "POST" }))
{
<input type="submit" name="pageSize" value="12" />
}
如何命中共享控制器中的选项方法。所以现在我能够从查询字符串中获取"12",但现在的问题是:我应该在 ActionResult 中返回什么,以便我可以保持在同一页面上?
共享控制器:
public ActionResult Options(string pageSize)
{
//Do stuff with the pageSize
return //what should I return here?
}
我改成了jquery帖子,现在它解决了问题
<script type="text/javascript">
function changePageSize(s) {
$.post('/Shared/Options?pageSize=' + s, function (data, status) {
window.location.reload();
});
}
</script>
在_Layout文件中添加了此功能,并在单击按钮时调用此函数。