Я подозреваю, что вам нужно изменить атрибуты id
и name
, потому что вы не используете модели представления.Следующее выглядит просто неправильно:
@Html.EditorFor(x => ViewBag.NestedFormDatas)
Если вы правильно используете модели представлений, вам не нужно изменять имена и идентификаторы, потому что шаблон редактора уже сгенерирует правильные значения:
@Html.EditorFor(x => x.NestedFormDatas)
В любом случае, одна возможность - написать собственный шаблон редактора для данного типа.Поэтому, если мы предположим, что NestedFormDatas
является строковым типом, вы можете добавить следующий ~/Views/Shared/EditorTemplates/String.cshtml
шаблон редактора, чтобы переопределить шаблон по умолчанию и позволить вам указать дополнительные атрибуты:
@Html.TextBox(
"",
ViewData.TemplateInfo.FormattedModelValue,
ViewData
)
и затем:
@Html.EditorFor(x => x.NestedFormDatas, new { id = "foo" })
Что касается атрибута name
, это не то, что можно переопределить с помощью помощника TextBox
.Вам нужно будет написать своего собственного помощника, если вам когда-нибудь понадобится это сделать.Но, как я уже сказал, если вы используете модели представлений, вам никогда не нужно это делать, потому что именно в этом заключается цель моделей представлений: они специально определены для соответствия требованиям данного представления.
Так что избавьтесь от любых следов ViewBag
в вашем коде и начните определять модели представления.Вы увидите, насколько веселым и легким станет ASP.NET MVC.