我有一个简单的用户将完成提交“新闻专线”。当表单在创建视图上加载时,我希望作者输入使用视图中文本框内的登录用户名自动填充。谁能评论我做错了什么?
我的模特:
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>
我尝试了几种变体,但仍然没有做到正确。任何帮助将不胜感激。
答案 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;在模型中。那可能是个问题!
您应该将其保留为属性,但在初始化对象时填充“作者”。