原谅我,我是 MVC 和 AJAX 的新手。
目前我只是提交一个表单,我想使用表单中的数据来使用 ajax 更新部分视图中的表。
我的_UserInfo
部分视图如下所示:
@model IEnumerable<Dashboard.Models.UserInfo>
<table>
<tr>
<th>
Firstname
</th>
<th>
Lastname
</th>
<th>
EmailAddress
</th>
<th>
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.firstName)
</td>
<td>
@Html.DisplayFor(modelItem => item.surname)
</td>
<td>
@Html.DisplayFor(modelItem => item.emailAddress)
</td>
<td>
@Html.DisplayFor(modelItem => item.SAMuserName)
</td>
</tr>
}
</table>
我的主User
视图如下所示:
@model Dashboard.Models.User
@Scripts.Render("~/bundles/jqueryval")
@using (Ajax.BeginForm("_UserInfo", "User", new AjaxOptions()
{
HttpMethod = "GET",
UpdateTargetId = "results",
InsertionMode = InsertionMode.Replace
}))
{
<fieldset>
//...My Form
<p>
<input type="submit" value="Find" />
</p>
</fieldset>
}
<div id="results">
</div>
最后这是我的UserController
:
public PartialViewResult UserResults(User person)
{
UserInfo personInfo = new UserInfo();
//....Doing stuff
return PartialView("_userInfo", personInfo);
}
现在我知道这可能不好。但这是我用我的小知识尝试过的最好的尝试。
当我单击用户视图上的按钮时,我收到一个 404 错误,提示找不到 _UserInfo。
我相信我所有问题的根源在于
@using (Ajax.BeginForm("_UserInfo", "User", new AjaxOptions()
{
HttpMethod = "GET",
UpdateTargetId = "results",
InsertionMode = InsertionMode.Replace
}))
但是以我的知识,我不知道出了什么问题。
*编辑: *正如已经向我指出的那样,我错误地创建了我的 HTML 表单。从那以后,我将其更改为
@using (Ajax.BeginForm("UserResults", "User", new AjaxOptions(){...}
我的动作现在被调用了!但是,我的部分视图没有加载到屏幕上。