Может ли кто-нибудь сказать мне, как использовать DataType.Custom в ASP.NET MVC 2?Как использовать DataType.Custom в ASP.NET MVC 2?
2
A
ответ
2
Я не использовал его лично, но, глядя на MSDN, кажется, что это вопрос настройки DataType = DataType.Custom
и CustomDataType = "String"
. Затем, когда вы обрабатываете свою модель, вы должны проверить DataType.Custom и, если нашли, выполнить разные операции на основе значения в CustomDataType.
Вот пример они дают на MSDN - How to: Customize Data Field Appearance and Behavior For Non-Intrinsic Data Types in the Data Model:
public partial class TextField : System.Web.DynamicData.FieldTemplateUserControl {
string getNavUrl() {
var metadata = MetadataAttributes.OfType<DataTypeAttribute>().FirstOrDefault();
if (metadata == null)
return FieldValueString;
switch (metadata.DataType) {
case DataType.Url:
string url = FieldValueString;
if (url.StartsWith("http://", StringComparison.OrdinalIgnoreCase) ||
url.StartsWith("https://", StringComparison.OrdinalIgnoreCase))
return url;
return "http://" + FieldValueString;
case DataType.EmailAddress:
return "mailto:" + FieldValueString;
default:
throw new Exception("Unknown DataType");
}
}
protected override void OnDataBinding(EventArgs e) {
base.OnDataBinding(e);
if (string.IsNullOrEmpty(FieldValueString))
return;
var metadata = MetadataAttributes.OfType<DataTypeAttribute>().FirstOrDefault();
if (metadata == null || string.IsNullOrEmpty(FieldValueString)) {
Literal literal = new Literal();
literal.Text = FieldValueString;
Controls.Add(literal);
return;
}
if (metadata.DataType == DataType.Url ||
metadata.DataType == DataType.EmailAddress) {
HyperLink hyperlink = new HyperLink();
hyperlink.Text = FieldValueString;
hyperlink.NavigateUrl = getNavUrl();
hyperlink.Target = "_blank";
Controls.Add(hyperlink);
return;
}
if (metadata.DataType == DataType.Custom &&
string.Compare(metadata.CustomDataType, "BoldRed", true) == 0) {
Label lbl = new Label();
lbl.Text = FieldValueString;
lbl.Font.Bold = true;
lbl.ForeColor = System.Drawing.Color.Red;
Controls.Add(lbl);
}
}
}
2
Я прочитал над ASP.NET MVC серии 2 шаблона Брэда Уилсона в своем блоге here. Он объясняет, что вы просите лучше, чем я мог.
Надеюсь, что это поможет.
4
Не использовать DataType.Custom
.
Вместо этого используйте [DataType("YourCustomDataTypeHere")]
с шаблоном редактора/дисплея с именем YourCustomDataTypeHere
.
Смежные вопросы
- 1. ASP.NET MVC 2 - Как использовать DropDownListFor?
- 2. Как использовать asp.net mvc
- 3. Использовать Asp.net MVC1 или MVC 2?
- 4. Asp.net MVC 2 кэширование
- 5. ASP.NET MVC 2 i18n
- 6. RadioButtonFor в ASP.NET MVC 2
- 7. Как использовать Ninject 2 в приложении ASP.NET MVC 3?
- 8. Как использовать базовый ViewModel в Asp.net MVC 2
- 9. Как мы можем использовать LinqToSQL в приложении ASP.NET MVC 2?
- 10. Как использовать транзакции в ASP.NET MVC identity 2?
- 11. Как использовать делегат async в запросе ASP.NET MVC 2?
- 12. ASP.NET MVC 2 - Организация
- 13. Asp.Net MVC 2 Validation
- 14. Пейджинг в asp.net-mvc-2
- 15. ASP.Net MVC 2 Default.aspx
- 16. Как вытолкнуть JSON в asp.net mvc 2?
- 17. ASP.NET MVC 2 DisplayFor()
- 18. ASp.Net MVC 2 Производительность
- 19. Как использовать решение ASP.NET MVC в отдельных проектах ASP.NET MVC
- 20. HttpStatusCodeResult в ASP.NET MVC 2
- 21. asp.net mvc 2 multithread
- 22. Autofac в Asp.net mvc 2
- 23. 2 ViewModel в ASP.NET MVC
- 24. Asp.net MVC 2 ValidationInput
- 25. Как использовать функцию в представлении ASP.NET MVC?
- 26. Asp.net MVC 2 CascadingDropDown
- 27. проверки в ASP.NET MVC 2
- 28. Как заполнить изображение в asp.net MVC 2
- 29. Как отобразить HTML в ASP.NET MVC 2?
- 30. Как работает валидация в ASP.NET MVC 2?
Чтобы немного расширить ответ MushinNoShin, создайте здесь новый файл: Views \ Shared \ DisplayTemplates \ YourCustomDataTypeHere.cshtml –