ASP.NET MVC: настройка - PullRequest
       4

ASP.NET MVC: настройка

0 голосов
/ 05 июня 2011

Какой раздел ASP.NET MVC следует переопределить, чтобы можно было изменить имя полей (Свойства модели) в выводе на пользовательские вещи? Примерно так:

<input id="IsActive" name="IsActive" type="checkbox" />

к этому:

<input id="MYCUSTOMFORMAT-IsActive" name="MYCUSTOMFORMAT-IsActive" type="checkbox" />

Это пользовательское форматирование не должно нарушать ничего, такого как проверка на стороне клиента и на стороне сервера.

Заранее спасибо;)

Подробнее

Я знаю, что мы можем сделать это в шаблонах отображения / редактирования, но я думаю, что это приведет к нарушению.

Ответы [ 2 ]

2 голосов
/ 05 июня 2011

Вы можете переопределить имя в параметре HtmlAttributes вспомогательных методов Html.TextBoxFor (и т. Д.), Например:

@Html.TextBoxFor(o=>o.FirstName, new {id = "customId_originalId"})

Однако, поскольку вы изменяете это на стороне клиента, на стороне серверане сможет распознать эти измененные имена и не будет привязан должным образом, если вы не напишите свой собственный механизм связывания моделей.Как таковой он, вероятно, не знает о проверках на стороне сервера, чтобы связать это с любым из них, так что вы опять застряли, обрабатывая это на заказ.

1 голос
/ 06 июня 2011

Простой обходной путь для этого, если вам нужен постоянный префикс, но не обязательно правильный способ сделать что-либо, - это использовать модель представления, содержащую ваши свойства.в этом случае:

public class CustomViewModel
{
    public bool IsActive {get;set;}
}

[HttpGet]
public ActionResult MyView()
{
    CustomViewModel MYCUSTOMFORMAT = new CustomViewModel();
    return View(MYCUSTOMFORMAT);
}

[HttpPost]
public ActionResult MyView(CustomViewModel MYCUSTOMFORMAT){
    return View(MYCUSTOMFORMAT);
}

Это даст вам идентификатор MYCUSTOMFORMAT.IsActive.

Надлежащим способом сделать это, вероятно, будет переопределение связующего устройства модели по умолчанию и способа обработки перевода имен.к свойствам, но я не знаю достаточно хорошо связующих моделей, чтобы дать вам много указаний по этому вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...