2011-04-06 32 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())