2013-06-29 132 views
-1

MVC3 razor-我有一個波紋管模型,我的web應用程序:如何動態地將默認值傳遞給文本框?

public class mymodel{ 

    [Display(Name = "name")] 
    public string Name { get; set; } 
} 

當我們使用

@Html.LabelFor(m => m.Name) 

用它顯示「名稱」,例如上我們的文本框顯示該用戶提交是爲了輸入你的名字。

如何在文本框中使用顯示名稱值? 我測試,但值是空的,我想從我的模型中獲取值顯示(名稱=「名稱」)]

@Html.TextBoxFor(m => m.Name, new {@Value = @Html.ValueFor(m => m.Name)}) 

回答

1
@Html.TextBoxFor(m => m.Name, new {Value = Html.DisplayNameFor(m => m.Name)}) 

編輯:如果您需要重新顯示錶單並保存用戶輸入的值,那麼你可能希望用Darin的方法,或做這樣的事情:

@Html.TextBoxFor(m => m.Name, new { Value = (string.IsNullOrWhiteSpace(Model.Name) ? Html.DisplayNameFor(x => x.Name).ToHtmlString() : Model.Name) }) 
0

在控制器的描繪這種觀點,你可以設置你的視圖模型的名稱屬性:

public ActionResult Index() 
{ 
    var model = new MyViewModel(); 
    model.Name = ModelMetadata.FromLambdaExpression<MyViewModel, string>(x => x.Name, new ViewDataDictionary<MyViewModel>(model)).DisplayName; 
    return View(model); 
} 

,並在您的視圖:

@Html.LabelFor(x => x.Name) 
@Html.EditorFor(x => x.Name) 
相關問題