mvc3 razor-我的网络应用程序中有一个波纹管模型:
public class mymodel{
[Display(Name = "name")]
public string Name { get; set; }
}
当我们使用
时 @Html.LabelFor(m => m.Name)
它使用显示“名称”,例如我们的文本框的上方显示用户此文件用于输入您的姓名。
如何在文本框值中使用显示名称? 我测试它但值是空的我想从[Display(Name =“name”)]
我的模型中获取值 @Html.TextBoxFor(m => m.Name, new {@Value = @Html.ValueFor(m => m.Name)})
答案 0 :(得分: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) })
答案 1 :(得分:0)
在渲染此视图的控制器操作中,您可以设置视图模型的Name属性:
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)