Asp.net Mvc Показать шаблон String, но теперь каждый простой тип хочет использовать его! - PullRequest
8 голосов
/ 14 октября 2010

Я создал шаблон отображения, который при передаче строки отображает отключенное текстовое поле

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<String>" %>
<%: Html.TextBoxFor(model => model, new { disabled = "disabled" })%>

Который прекрасно работает. Однако по какой-то причине MVC хочет попробовать и через него заполнить DateTimes и Ints, что вызывает исключения

Элемент модели, передаваемый в словарь, имеет тип «System.Int32», но для этого словаря требуется элемент модели типа «System.String».

Есть идеи?

1 Ответ

10 голосов
/ 14 октября 2010

Вам не нужно строго вводить шаблон в строку.

вы можете попробовать что-то вроде этого:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%= Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue,
             , new { disabled = "disabled" }) %>

И, на ваш взгляд, вы называете это так

Html.DisplayModelFor(model => mode.name);

Для получения дополнительной информации см. Пример шаблона встроенного редактора по умолчанию для строки в Брэд Уилсон статья в своей сериина шаблоны в ASP.NET MVC.

Вы должны рассмотреть возможность прохождения всей серии.Я не могу выразить, насколько полезной была эта серия для меня.

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