如何在mvc中自动填充文本框

时间:2011-07-29 12:59:34

标签: asp.net-mvc-3

我有一个简单的用户将完成提交“新闻专线”。当表单在创建视图上加载时,我希望作者输入使用视图中文本框内的登录用户名自动填充。谁能评论我做错了什么?

我的模特:

public class NewsWire
 {

      public int ID { get; set; }
      public int VendorID { get; set; }
      public DateTime Date { get; set; }          
      public string Subject { get; set; }
      public string NewsItem { get; set; }
      //public string Author { get; set; }

      public string Author
      {
           get
           {
               return System.Web.HttpContext.Current.User.Identity.Name;
           }
      }
  }

在作者部分的表格中,我有:

<div class="editor-label">
        @Html.LabelFor(model => model.Author)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Author)
        @Html.ValidationMessageFor(model => model.Author)
    </div>

我尝试了几种变体,但仍然没有做到正确。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

型号:

public class NewsWire
{
    public int ID { get; set; }
    public int VendorID { get; set; }
    public DateTime Date { get; set; }          
    public string Subject { get; set; }
    public string NewsItem { get; set; }
    public string Author { get; set; }
}

并在呈现此视图的控制器操作内部填充当前登录用户的Author属性:

[Authorize]
public ActionResult SomeAction()
{
    var model = new NewsWire
    {
        Author = User.Identity.Name
    };
    return View(model);
}

答案 1 :(得分:0)

好的,我注意到的是你正在创建一个编辑器,但作者只有{get;在模型中。那可能是个问题!

您应该将其保留为属性,但在初始化对象时填充“作者”。