C# 如何更新HTML助手的name属性

C# 如何更新HTML助手的name属性,c#,asp.net-mvc-3,asp.net-mvc-4,razor,C#,Asp.net Mvc 3,Asp.net Mvc 4,Razor,我正在使用MVC4,只是想知道,是否可以更新html助手的name属性。我正在更新它,因为操作方法需要一个特定的名称。我知道我可以只编写原始html,但我只想知道html助手中是否有overide 我试过这个 @Html.TextAreaFor(m => m.noteDetail.NotesDetails, new { @class = "k-textbox", @cols = 100, @rows = 5, id="NotesDetails", name= "NotesDetails"

我正在使用MVC4,只是想知道,是否可以更新html助手的name属性。我正在更新它,因为操作方法需要一个特定的名称。我知道我可以只编写原始html,但我只想知道html助手中是否有overide

我试过这个

@Html.TextAreaFor(m => m.noteDetail.NotesDetails, new { @class = "k-textbox", @cols = 100, @rows = 5, id="NotesDetails", name= "NotesDetails" })
但是当我看到生成的html时

<textarea class="k-textbox" cols="100" data-val="true" data-val-required="The details are required" id="NotesDetails" name="noteDetail.NotesDetails" rows="5"></textarea>


谢谢

您只需要在name属性前面加一个@符号。

当子模型是POST action接受的模型时,我发现的一种技术是将呈现子模型的HTML放在主视图中包含的部分视图中。通过子模型强类型化此分部,并将子模型的值传递给它。这样,就不会在子模型上生成前缀

 @Html.Partial("_NoteDetails", Model.noteDetail)
然后在
\u NoteDetails.cshtml

@model NoteDetail

@Html.TextAreaFor(m => m.NoteDetails,
                  new { @class = "k-textbox", cols = 100, rows = 5 });

您好,我想当您通过一个
viewModel
时,它可能包含两个模型,这就是为什么您有这个名称。对于
活页夹
来说,这样做是为了从
Post
Get
构建对象。
如果您更改了名称,那么如果您想再次将其传递给控制器,您可能会为您的活页夹执行一些自定义代码。

尝试“@name”(大写N)@JleruOHeP似乎只需创建第二个非标准属性,该属性仅在大小写上有所不同。它可能会起作用,但我还是认为它坏了。因为xxxforoperators(比如TextAreaFor)的全部要点是为模型绑定自动生成名称。
@
符号用于将其他保留关键字转换为合法变量名称。由于
name
不是保留关键字,因此此处不需要保留。