【发布时间】:2016-08-26 23:47:22
【问题描述】:
我有用于测试目的的简单页面。所以我有一个索引页面,它有一个下拉列表来选择一个国家和一个搜索按钮,它会显示一些信息作为表格中的行列表。
@using (Ajax.BeginForm("GetList", "test", new AjaxOptions
{
HttpMethod = "POST",
UpdateTargetId = "showResult"
}))
在我的控制器中,它返回一个局部视图。
[HttpPost]
public ActionResult GetList(int CountryId)
{
var model = db.Names
.Include(x => x.Country)
.Where(x => x.Country.CountryId == CountryId).ToList();
return PartialView("PartialPosting", model);
}
在我的 PartialPosting 视图中,有一个按钮可以调用可以提交注释的模式对话框。
@model IEnumerable<test.Models.Names>
<table class="table table-hover">
<tr>
<th>Note</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.ActionLink("Button", "button", "test", null, new { @class = "btn btn-danger btn-xs", data_toggle = "modal", data_target = "#modal-container" })
</td>
</tr>
}
</table>
<div id="modal-container" class="modal fade" tableindex="-1" role="dialog">
<div class="modal-content">
<div class="modal-body">
</div>
</div>
</div>
当一个按钮被点击时,它会转到控制器中的一个按钮方法,该方法返回将以模态显示的视图
<div class="modal-body">
按钮方法:
public ActionResult Button()
{
return View();
}
按钮视图:
@model test.ViewModels.NoteViewModel
@using (Html.BeginForm("PostNote", "test", FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.TextAreaFor(model => model.Note)
<input type="submit" value="Submit" />
}
和 PostNote 方法:
[HttpPost]
public ActionResult PostNote(NoteViewModel model)
{
//codes
--> ?? return RedirectToAction();
}
一切正常, 但这是我的问题。当模态框提交注释时,
- 我希望模态框立即消失。
- 返回到之前的状态,那里有一个下拉列表来选择一个国家和一个搜索按钮 && 一个搜索结果表,其中我只是单击了一个按钮。
由于这涉及到 ajax 响应,我不确定如何将正确的 URL 带回之前的状态。
【问题讨论】:
-
什么下拉菜单?什么搜索按钮?你想重定向到哪里。您需要出示相关代码。
-
通过 ajax 发布您的
NoteViewModel。因为发布表单不保留更改.. NoteViewModel 中只有一个字段。只需在按钮单击时将Note文本框值传递给 PostNote 操作结果..
标签: ajax asp.net-mvc return