В ASP. NET MVC (5.x, не Core), у меня есть страница CS HTML, где модель содержит вложенный объект, для которого у меня есть элементы управления вводом, аналогичные:
@Html.TextBoxFor(model => model.Order.CustomerName)
Сделано таким образом, ASP. NET добавляет к атрибутам id и name тега ввода префиксы «Порядок», на:
<input id="Order_CustomerName" name="Order.CustomerName" type="text" value="...">
Префиксы портят форму Почта. Я могу заставить имя и идентификатор быть просто CustomerName, выполнив:
@Html.TextBoxFor(model => model.Order.CustomerName, new { id = "CustomerName", name = "CustomerName" })
, но неудобно делать это для каждого элемента управления вводом.
Я мог бы переместить все поля ввода в партиал и вызвать его с Model.Order в качестве модели, но разделение содержимого имеет некоторые недостатки в моем сценарии.
Есть ли способ указать использование Model.Order в качестве модели для всех элементов управления внутри форма или раздел страницы? Что-то вроде следующей вымышленной директивы:
@useModel(Model.Order) {
@Html.TextBoxFor(model => model.CustomerName)
}