Шаблон редактора ASP.NET MVC 2 для типов значения, интервала

От MSDN:

Ключевое слово Набора: В VBA, ключевое слово Набора необходимо для различения присвоение объекта и присвоение свойства по умолчанию объекта. Так как свойства по умолчанию не поддерживаются в Visual Basic.NET, ключевое слово Набора не нужно и больше не поддерживается.

6
задан BigBlondeViking 3 August 2009 в 17:29
поделиться

3 ответа

Я еще не пробовал превью 1, но они сделали то, о чем вы просите в этом видео на Channel9:

http://channel9.msdn.com/posts/Gluosis/Hanselminutes-on-9-ASPNET-MVC- 2-Preview-1-with-Phil-Haack-and-Virtual-Scott /

Они выполняют и DisplayFor, и EditorFor, запускаются примерно через 2 минуты.

- Edit -

Для типа значения, например int I смог заставить его работать таким же образом.

Создайте модель для перехода к моему представлению:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        HomeModel model = new HomeModel();
        model.message = "Welcome to ASP.NET MVC!";
        model.number = 526562262;
        model.Date = DateTime.Now;

        return View(model);
    }
}

public class HomeModel
{
    public string message { get; set; }

    public int number { get; set; }

    public DateTime Date { get; set; }
}

Свяжите представление с моделью, используя новую логику шаблона:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<HomeModel>" %>

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
<p>
    <% Html.EditorFor(c => c.message); %>
</p>
<p>
    <% Html.EditorFor(c => c.number); %>
</p>
<p>
    <% Html.EditorFor(c => c.Date); %>
</p>

Затем создайте шаблон для каждого из типов например, Int32:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
Editor For My Int32: <%= Html.TextBox("abc", Model.ToString())%>

Я поместил это в Views \ Shared \ EditorTemplates \ Int32.ascx

4
ответ дан 8 December 2019 в 05:56
поделиться

Будет ли ответ Ника Кларка работать, когда вы отправляете значения при обратной передаче?

В предварительной версии MVC2 2 вызов Html.Textbox ("abc", Model.ToString ()) отобразит текстовое поле с ".abc", добавленным к имени, например

<input id="StartDate_abc" name="StartDate.abc" type="text" value="02 Feb 09" />

, что вызовет проблемы при обратной передаче и попытке UpdateModel ().

Я создал шаблон редактора для DateTime, у меня работает следующее:

/Views/Shared/EditorTemplates/DateTime.ascx:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime>" %>
<%= Html.TextBox(String.Empty, Model.ToString("dd MMM yy")) %>

или, чтобы использовать DatePicker jQuery для всех ваших DateTimes добавьте ссылку на jQuery и jQueryUI либо на свою главную страницу, либо на представление, содержащее вызов EditorFor.

/Views/Shared/EditorTemplates/DateTime.ascx:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime>" %>
<%= Html.TextBox("", Model.ToString("dd MMM yy")) %>
<script type="text/javascript">
    $("#<%= ViewData.ModelMetadata.PropertyName %>").datepicker({ dateFormat: 'dd M y' });
</script>

Обновление: ASP.NET MVC3 , используя Синтаксис Razor:

@model System.DateTime
@Html.TextBox("",  Model.ToString("dd MMM yy"))
<script type="text/javascript">
    $("#@ViewData.ModelMetadata.PropertyName").datepicker({ dateFormat: 'dd M y' });
</script>

И для использования в представлении все, что вам нужно, это:

@Html.EditorFor(model => model.DueDate)

-Matt

15
ответ дан 8 December 2019 в 05:56
поделиться

Я написал сообщение в блоге о том, как это сделать, создавая повторно используемые шаблоны в MVC 2.

Моя запись также объясняет связь между TemplateInfo и шаблонами.

2
ответ дан 8 December 2019 в 05:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: