[英]MVC .NET Refresh (Update) PartialView witout AJAX
我有一個帶有部分視圖的頁面,其中包含帶有“添加”按鈕和DevEx GridView的DevEx ComboBox(我省略了GridView代碼)。 該頁面使用該局部視圖正確顯示,只有我在刷新頁面時遇到問題。
//_ProductAppsGridViewPartial
<div class="form-horizontal">
<h4>Apps</h4>
@using (Html.BeginForm("AppsGridViewPartialAddNew", "Products", new { ProductID = ViewBag.ProductID }))
{
<div class="form-group">
<h5>Add new App:</h5>
@Html.DevExpress().ComboBox(settings =>
{
//..do some settings for ComboBox - some code omitted
settings.Properties.ValueField = "ApplicationID";
settings.Properties.TextField = "Name";
}).BindList(Model.AppsNotInProduct).GetHtml()
<input type="submit" value="Add" class="btn btn-default" />
</div>
}
</div>
我對控制器執行操作,該操作將在數據庫中添加選定的應用程序並返回具有相同(但已刷新)模型的PartialView,但響應僅顯示該部分View。 這是Controller更新數據庫后返回PartialView的操作的一部分:
public ActionResult ProductAppsGridViewPartialAddNew(int ProductID)
{
//....update DB code - WORKS FINE
..
var model = GetProductAppsPartialModel(ProductID);
ViewBag.ProductID = ProductID;
ViewBag.CanEdit = true;
return PartialView("_ProductAppsGridViewPartial", model);
}
是否可以用AJAX刷新部分視圖,也許是我上面寫的東西? 所以這里的主要問題是我得到的新頁面僅顯示部分視圖。
要刷新頁面的一部分,您將需要使用Ajax來僅替換所需的內容。 您還需要使用JavaScript重新呈現部分中包含的HTML。 MVC帶有一些ajax助手,或者您可以使用jquery自己完成。 目前,動作結果正在按要求返回部分內容,但瀏覽器被告知正在接收一個新頁面並以此方式顯示。
將此鏈接添加到Microsoft ajax以顯示一些選項。
我會用jquery自己做。 還要記住,mvc是服務器端框架,可幫助您將http消息返回到瀏覽器。 您正在嘗試在客戶端進行操作。 實時客戶端更新始終需要ajax來獲取數據。 替換DOM中的項目需要某種形式的JavaScript。 像jquery這樣的庫使此操作變得容易得多。 在這里看看jquery ajax。
我認為您需要嘗試此代碼。 注意這里我們需要保持ajax調用來更新局部視圖
@using (Ajax.BeginForm("ActionName", "Controller", new { model = @Model.ID },
new AjaxOptions
{
OnSuccess = "onSuccessRefresh "
}))
{
<table>
<td>
</td>
<td> <input type="button" value="AddValue" /> </td>
</table>
}
使用jquery處理代碼onsuccess事件:
function onSuccessRefresh {
// refersh your page or table
}
這不是完整的代碼。 但我認為這對您有幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.