如何仅在绑定中将属性重命名为其他名称?

时间:2014-05-20 17:11:07

标签: c# asp.net-mvc asp.net-mvc-4 razor

我的页面使用两种型号。一个用于主页面呈现,另一个用于搜索功能。

使用Ajax检索搜索视图模型。这是模型:

public class SearchViewModel
{
    public int Id { get; set; }
    public string Name { get; set; }
}

但我的Razor视图使用不同的模型(主页面渲染):

public class DifferentViewModel
{
    public int Id { get; set; }
    public string Value { get; set; }
}

我担心在通过隐藏Id的隐藏字段的表单发布数据时,是否会传递正确的SearchViewModel.Id值。

@using (Html.BeginForm("Action", "Controller"))
{
    @(Html.HiddenFor<SearchViewModel, Int32>(m => m.Id))
}

问题:是否可以重命名id中的属性input以匹配SearchViewModel?例如,类似于:

<input type="hidden" id="SearchViewModel.Id" />

或者,我可以使用SearchViewModel中的属性绑定到不同的ID吗?

我查看了下面的1链接,但它没有解决我的问题。此外,我发现的所有引用都将我重定向到自定义模型绑定器,我不想实现(因为在Id中更改属性SearchViewModel的名称会更容易)。

参考:

BeginForm in ChildAction uses wrong id

0 个答案:

没有答案