ASP.NET MVC 2 Editor Vorlage für Werttypen, int
-
11-07-2019 - |
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
Lösung
Ich habe nicht versucht Vorschau 1 noch nicht, aber sie tat, was sie bittet in dieser Channel9 Video:
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.