Я работаю через NerdDinner, и я немного смущен следующим разделом...
Сначала они добавили форму для создания нового ужина с набором текстовых полей, объявленных как:
<%= Html.TextArea("Description") %>
Они затем показывают два способа связать вход формы с моделью:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create() {
Dinner dinner = new Dinner();
UpdateModel(dinner);
...
}
или:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(Dinner dinner) { ... }
Хорошо, большой, что все взгляды, действительно легкие до сих пор.
Затем немного позже они говорят:
Важно всегда быть параноидальным о безопасности при принятии любого ввода данных пользователем, и это также верно когда объекты привязки для формирования входа. Необходимо всегда стараться для HTML, кодируют любые вводимые пользователями значения для предотвращения HTML и нападений инжекции JavaScript
Ха? MVC справляется с привязкой данных для нас. Где/как Вы, как предполагается, делаете кодирование HTML?
Обычно (но не всегда) вы хотите кодировать значения в HTML перед их записью, обычно в ваших представлениях, но, возможно, также и из контроллера.
Некоторая информация здесь: http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp- net-4-and-asp-net-mvc-2.aspx