2011-04-06 70 views
0

我都强类型的视图,用于字符串类型的属性自定义模板,我应该改变价值自定义模板asp.mvc问题

// model 
class Person 
{ 
    public string Name { get; set; } 
} 

// view 
@model Person 
<div> 
    @Html.EditorFor(m => m.Name) 
</div 

//custom template view 
@model System.String 
@Html.TextBox(string.Empty, Model.ToUpper()) 

,但它不工作 - 我老名称值,没有改变

我忘了重要的细节 - 从查询字符串URL名称属性获取价值 -

http://localhost:53494/?Name=blah 
+0

您是否收到任何错误? – 2011-04-06 12:12:19

+0

没有错误 – Boo 2011-04-06 12:13:34

+0

它代替了什么? – 2011-04-06 12:14:00

回答

2

Html帮助程序(如TextBox)在绑定它们的值时始终首先查看modelstate,并且因为已经有来自请求字符串的值,它会忽略您传递给它的第二个参数。因此,要实现你在找什么,您可能需要首先从模型状态删除值:

@model string 
@{ 
    ViewData.ModelState.Remove(ViewData.TemplateInfo.GetFullHtmlFieldName("")); 
} 
@Html.TextBox(string.Empty, (Model ?? string.Empty).ToUpper())