如何从ASP .NET MVC razor视图中仅发布部分完整模型

Ale*_*sev 6 c# asp.net-mvc razor

我有一个视图,其中@model声明为FullModel类型;

public class FullModel
{
    public IList<Record> SomeRecords {get;set;}
    public Record NewRecord {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

此视图呈现SomeRecords,并且还将用于将NewRecord发布到控制器方法的Form呈现为:

public ActionResult CreateNew(Record record)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

像这样的东西:

@using (@Html.BeginForm("CreateNew", "RecordController"))
{
    @Html.TextBoxFor(x => x.NewRecord.SomeProp)
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是这不起作用,因为路径从root开始FullModel,所以POST数据变为NewRecord.SomeProp和控制器期望Record为root,路径应该是SomeProp

什么是通常\正确的方法来处理这个?

dot*_*tom 0

一种方法可能是使用TextBox而不是TextBoxFor定义您的自定义名称:

@using (@Html.BeginForm("CreateNew", "RecordController")) 
{
    @Html.TextBox("SomeProp", Model.NewRecord.SomeProp)
...
}
Run Code Online (Sandbox Code Playgroud)