繁体   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