0

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)})
4

2 回答 2

2
@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) })
于 2013-06-29T09:14:46.673 回答
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)
于 2013-06-29T09:18:43.383 回答