簡體   English   中英

MVC .NET刷新(更新)不使用AJAX的PartialView

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM