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?
cevap
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!
Son kez yeniden kaydetmeyi denedim, jilet görüşlerini güncellemedim – BlackTigerX
Ve ayrıca kurtulabiliyoruz Action = T4MVC kullanarak sihirli dizgisi = "Update" –
Çoğunlukla bir tercih meselesi, dizeleri kullanan bir miktar performans artışı var, ancak çoğu web uygulaması için önemli değil – BlackTigerX