我有一个带有一些输入字段的表单 . 当用户点击我想要发回字段的提交时,使用它们查询服务并将一些结果加载到同一页面上的视图中,同时保留原始输入 . 为此,我使用我的模型搭建了一个视图,并在下面添加了一个局部视图来填充结果 .
....bottom of form <div class="form-group">
@Html.LabelFor(model => model.Amount, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Amount, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.PostalAmount, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Search" class="btn btn-default" />
</div>
</div>
</div>
<div class="list-group">
@Html.Partial("_ResultsPartial")
</div>
在我的控制器中,我有2个动作,一个用于创建初始视图,另一个用于回发 .
[HttpGet]
public ActionResult Search()
{
ViewBag.Message = "Enter search details";
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public PartialViewResult Search(SearchCriteria searchCriteria)
{
List<SearchResult> results = new List<SearchResult>();
if (ModelState.IsValid)
{
//await go off and do the actaul search
results = _dataProvider.GetData(searchCriteria);
}
return PartialView("~/Views/Shared/_ResultsPartial.cshtml", results);
}
因此,为了呈现局部视图,我使用返回的PartialView传递包含搜索结果的新模型 . 我遇到的一个问题是创建一个新页面,即部分视图不会加载到现有页面上 . 在控制器操作中,还有哪些方法可以呈现局部视图,以便在创建的页面上加载局部视图?
2 回答
尝试使用以下内容替换渲染:
Try this one