索引頁面包含兩個部分視圖。一個是用戶輸入搜索條件,另一個是顯示結果。 如何僅更新結果視圖中的數據?如何只刷新MVC 5中的部分索引頁面?
我正在使用MVC 5和Razor。我已經看到了一些例子,主要是使用ajax和jquery。我問什麼是這個
//索引視圖最好的(更喜歡容易)解決方案:
<div id="div_Search">
@{Html.RenderPartial("~/Views/Shared/Search.cshtml", ViewBag.Model_Search);}
</div>
<div id="div_Results">
@{Html.RenderPartial("~/Views/Shared/Results.cshtml", ViewBag.Model_Results);}
</div>
// HOME CONTROLLER
公共類HomeController的:控制 { MainContextDB DB =新MainContextDB();
public ActionResult Index()
{
// Code to initialize ViewBag.Model_Search, etc...
....
// Code to initialize ViewBag.Model_Results, etc... (Values empty at startup)
....
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult GetResults([Bind(Include = "DropOffLoc,DropOffDate,PickUpDate")] Search search)
{
// Retrieve results using the search parameters, etc...
....
// THIS RETURNS THE VIEW WITH THE DATA, BUT IN A SEPARATE PAGE (AS EXPECTED)
return View("~/Views/Shared/Results.cshtml", results);
// THIS RETURNS THE VIEW IN THE MAIN PAGE BUT WITH EMPTY DATA (AS EXPECTED)
return RedirectToAction("Index");
// HOW TO RETURN THE VIEW WITH THE DATA IN THE MAIN PAGE ?
???????
}
}
//這是搜索的局部視圖
@model Models.Results
@using (Html.BeginForm("GetResults", "Home", FormMethod.Post, new { @class = "my-form" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div class="form-group input-group-sm">
@Html.LabelFor(model => model.DropOffLoc)
@Html.DropDownListFor(model => model.DropOffLoc, ViewBag.LocationList as SelectList, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.DropOffLoc)
</div>
<div class="form-group input-group-sm">
@Html.LabelFor(model => model.DropOffDate)
@Html.TextBoxFor(model => model.DropOffDate, new { @class = "form-control datepicker", placeholder = "Enter Drop-off date here..." })
@Html.ValidationMessageFor(model => model.DropOffDate)
</div>
<div class="form-group input-group-sm">
@Html.LabelFor(model => model.PickUpDate)
@Html.TextBoxFor(model => model.PickUpDate, new { @class = "form-control datepicker", placeholder = "Enter Pick-up date here..." })
@Html.ValidationMessageFor(model => model.PickUpDate)
</div>
<div style="text-align: center; margin-top: 10px; margin-bottom: 10px;">
<input type="submit" id="getResults" value="GET RESULTS" class="btn btn-default btn-success" />
</div>
}
就是這樣,在一個形式。你能舉一個例子說明如何做「..把結果返回到你的$(」#div_Results「)」 –
@BenJunior完成 - 見上面的編輯。 – SethMW