Frage

ich eine MVC 2-Editor-Vorlage für einen Werttyp d int, das jemand 1 Bits mit der Vorschau getan hat erstellen?

Vielen Dank

War es hilfreich?

Lösung

Ich habe nicht versucht Vorschau 1 noch nicht, aber sie tat, was sie bittet in dieser Channel9 Video:

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

Sie haben beide DisplayFor und EditorFor, beginnt etwa 2 Minuten.

- Bearbeiten -

Für Werttyp heißt int ich war in der Lage, um es in der gleichen Art und Weise zu arbeiten.

Erstellen Sie ein Modell meiner Ansicht weitergeben müssen:

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; }
}

Link Blick auf das Modell, um die neue Vorlage Logik verwendet:

<%@ 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>

Erstellen Sie dann eine Vorlage für jede der verschiedenen Arten z.B. Int32:

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

Ich habe dies in Views \ Shared \ EditorTemplates \ Int32.ascx

Andere Tipps

Will Nick Clarke Antwort der Arbeit, wenn Sie die Werte auf Postbacks einreichen?

In MVC2 Vorschau 2 Aufruf Html.TextBox ( "abc", Model.ToString ()) rendert ein Textfeld mit „.abc“ an den Namen angehängt, z.B.

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

, die Probleme verursachen, wenn Sie Postback und Versuch Updatemodel ().

Ich habe eine Editor-Vorlage für eine Datum- und die folgenden Werke für mich:

/Views/Shared/EditorTemplates/DateTime.ascx:

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

oder, um jQuery Datepicker für alle Datetime zu verwenden fügen Sie einen Verweis auf jQuery und jQueryUI entweder Ihre Masterpage oder die Ansicht um den Anruf zu EditorFor enthält.

/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>

Update: ASP.NET MVC3 , mit der Razor-Syntax:

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

Und zu verwenden, um es alles, was Sie in Ihrer View brauchen, ist:

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

-Matt

ich geschrieben habe eine Blog-Post darüber, wie dies durch wiederverwendbare Vorlagen in MVC 2 zu schaffen.

Ihr Beitrag erklärt auch die Beziehung zwischen TemplateInfo und Vorlagen.

Ich habe Brad Wilson gefunden Blog die besten Beispiele und Erläuterungen zu haben. Part-3 der Serie spricht speziell über Werttypen (String, dezimal, Int32).

Genießen Sie!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top