2009-08-03 11 views

cevap

4

Henüz önizleme 1 denemedim ama ne bu Channel9 videoda için soruyorsunuz yaptı:

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

Onlar yapmak hem DisplayFor ve EditorFor, yaklaşık 2 dakika başlar . değer türüne yani İçin

--Edit--

Ben aynı şekilde çalışmak için başardı int.

benim görünümüne geçmek için bir model oluşturun:

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

yeni şablon mantığı kullanarak modelin bağlantısı görünümü:

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

Sonra her biri için bir şablon oluşturmak örneğin Int32:

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

Ben Görünümler'de koymak \ Shared \ EditorTemplates \ Int32.ascx

+0

Video, bir değer türü olmayan bir referans türüne (dize) dayalı bir düzenleyici şablonunun oluşturulmasını gösterir. –

+0

dean: Cevabımı geliştirdim, ancak sürüm notlarında bilinen bir sorun var. Yukarıda benim için işe yaramış gibi görünüyor, bu yüzden ilgili olandan emin değilim. –

+0

Teşekkürler Nick, Sayfa bildirimlerimdeki değer türünü bildiriyordum, ör. Inherits = "System.Web.Mvc.ViewUserControl " bu sorunu gidermek, örneğinize göre sorunu çözer. Tüm yardımlarınız için teşekkürler. –

15
Eğer geri gönderme değerlerinizi göndermek

Will Nick Clarke'ın cevabı çalışır?

MVC2 önizleme 2'de, Html.Textbox ("abc", Model.ToString()) 'un çağrılması, ".abc" ile bir metin kutusuna, ör. Eğer geri gönderebileceksiniz sorunlara neden ve UpdateModel girişimi olacak

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

().

bir DateTime için bir editör şablonu yaptım benim için şu işleri:

/Views/Shared/EditorTemplates/DateTime.ascx:

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

ya, jQuery'nin DatePicker kullanmak için tüm senin DateTimes jQuery ve jQueryUI öğelerine, Ana Sayfanıza veya Search for EditorFor'u içeren Görünüm'e bir başvuru ekleyin.

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

Güncelleme: ASP.Jilet sözdizimi kullanılarak NET MVC3:

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

Ve ister size görünümünde gereken tüm kullanmaktır:

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

-Matt

2

ben nasıl yapılacağı hakkında a blog post yazdım Bu, MVC 2'de yeniden kullanılabilir şablonlar oluşturarak.

Gönderiim ayrıca TemplateInfo ve şablonlar arasındaki ilişkiyi açıklar.

1

En iyi örnekleri ve açıklamaları için Brad Wilson'un blog numaralı ürününü buldum. Serilerin Part-3 özellikle değer türleri hakkında konuşur (Dize, ondalık, Int32).