在.NET MVC应用程序中更改当前viewModel

时间:2015-07-22 20:44:16

标签: javascript asp.net .net asp.net-mvc viewmodel

我的视图使用如下所示的模型:

public class ObjectViewModel
{
    public int ChosenVariant{ get; set; }
    public List<Object> Objects{ get; set; }
}

但在页面上,我只显示列表中Object之一的详细信息(id等于ChosenVariant)。

在同一页面上,我有单选按钮,每个单元都绑定到列表中的一个对象:

@foreach (var obj in Model.Objects)
{
<div class="radio">
    @{
        var options = new RouteValueDictionary();
        options["onchange"] = "UpdatePage()";

        if (product.ID == Model.ChosenVariant)
        {
            options["checked"] = "checked";
        }
    }
    @Html.RadioButtonFor(p => Model.ChosenVariant, @product.ID, options)
</div>
}

我的问题是我如何刷新Model.ChosenVariant并再次渲染页面而不刷新?

我的第一个想法是在javascript函数中使用Model的新值返回整个Model.ChosenVariant(在onchange单选按钮上)。 此功能会将Post操作调用到Controler,Controler会再次返回整个Model(但新的Model.ChosenVariant更新。然后在此{@ 1}}操作后,我将使用done用于刷新页面。

有没有更简单的方法可以在不调用Controller的情况下更改当前的viewmodel?

0 个答案:

没有答案