2008-08-20 15 views
4

ASP.NET MVC'de bazı verileri göndermek için bir form yazmanın en iyi yolu nedir? Scott Guthrie burada mı gösteriliyor? Daha iyi yaklaşımlar var mı? Belki dizeleri daha az kullanarak? o refactor mümkün olmadığındanASP.NET MVC'de form yazmanın en iyi yolu nedir?

alt text

+0

Çoğunlukla bir tercih meselesi, dizeleri kullanan bir miktar performans artışı var, ancak çoğu web uygulaması için önemli değil – BlackTigerX

cevap

2

benim kodunda dizeleri gibi gerçekten yok. Linq İfadeleri kullanmanın güzel bir yolu. Eğer aşağıdaki ifadeyi kullanabilirsiniz ViewData olarak bir model geçti alırsanız:

<%= ShowDropDownBox(viewData => viewData.Name); %> 
... 

public static string ShowDropDownList<T>(this HtmlHelper html, Expression<Action<T>> property) 
{ 
    var body = action.Body as MethodCallExpression; 
    if (body == null) 
     throw new InvalidOperationException("Expression must be a method call."); 
    if (body.Object != action.Parameters[0]) 
     throw new InvalidOperationException("Method call must target lambda argument."); 
    string propertyName = body.Method.Name; 
    string typeName = typeof(T).Name; 

    // now you can call the original method 
    html.Select(propertyName, ...); 
} 

Ben orijinal çözüm daha hızlı performans biliyorum ama bu bir daha temiz olduğunu düşünüyorum.

Bu yardımcı olur umarız!

+0

Son kez yeniden kaydetmeyi denedim, jilet görüşlerini güncellemedim – BlackTigerX

+0

Ve ayrıca kurtulabiliyoruz Action = T4MVC kullanarak sihirli dizgisi = "Update" –