MVC 4单击按钮获取部分页面
本文关键字:分页 获取部 按钮 单击 MVC | 更新日期: 2023-09-27 17:54:10
我正在创建一个具有搜索属性的页面。用户将在搜索字段中输入一个数字,然后点击提交按钮。我需要能够调用一个控制器方法,以运行搜索代码。
现在我只是试图击中部分页面,只是得到一些功能在那里。下面是我到目前为止的代码。到目前为止,当我点击按钮时什么也没有发生。我听说Ajax是一种可以使用的东西,所以我一直在尝试它。我还在学习框架,所以请原谅我。
<div class="span6 roundedCorners">
<div class="row-fluid Title">
<div class="span6">
Search Area
</div>
</div>
<div class="row-fluid individual">
<div class="row-fluid">
<div class="span4"><span class="pull-right fieldDescription">Number</span></div>
<div class="span8"><input /></div>
</div>
<div class="row">
<div class="span12" id="adminSubmitButton">
@using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "_adminDetails" }))
{
<button type="submit" class="btn btn-inverse">Submit</button>
}
</div>
</div>
</div>
您的表单是空的,它只有一个提交按钮。您需要将搜索按钮移动到表单内部。像这样:
模型public class SearchModel
{
[Required]
public string Query { get; set; }
}
视图@model SearchModel
...
@using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "_adminDetails" }))
{
@Html.EditorFor(m => m.Query)
@Html.ValidationMessageFor(m => m.Query)
<button type="submit" class="btn btn-inverse">Submit</button>
}
<div id="_adminDetails"></di>
注意:确保你有一个id为_adminDetails
的元素
控制器必须接受模型并执行搜索。例子:
控制器 [HttpPost]
public ActionResult Index(SearchModel model)
{
//do something with your model (perform search)
return View(results);
}
好了,我现在已经部分工作了。当我点击按钮,我可以调用控制器方法使用:
function adminButton()
{
$("#adminDetails").load("@Url.Action("ControllerMethod", "ControllerName")");
}
。动作帮助器允许我调用返回部分视图的方法。这是朝着正确方向迈出的一步。但是从我所读到的,我应该能够使用下面的Url助手,而不是@Url。行动:
"@Url("ControllerMethod", "ControllerName")/" + submitButton.Value
我已经尝试了一些变化,我仍然在做一些阅读找出一个解决方案。有帮手会让我这么做吗?
谢谢大家的帮助。周五晚上我确实解决了我的问题。基本上,我所做的就是在点击按钮时加载部分页面通过JS/jQuery和Razor @Url.Action()的帮助来调用返回PartialView的控制器方法:
<script type="text/javascript">
function adminButton()
{
var link = "@Url.Action("ControllerMethod", "ControllerClass", new {
number = -1})";
var num = parseInt($("#number").val());
link = link.replace(-1, num);
$("#details").load(link);
}
</script>