我的视图使用如下所示的模型:
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?