[英]ASP.Net MVC Initial Values on Create
我正在尝试ASP.Net MVC应用程序,并且正在研究通过控制器设置默认值的方法。
例如,使用以下模型:
public class MyItem
{
public int ID { get; set; }
public int ItemTypeID { get; set; }
public string Description { get; set; }
public DateTime CreateDate { get; set; }
}
我已经弄清楚了如何在HttpPost Create函数中设置值(例如类型和创建日期,其值对用户不可见或不可编辑)。
public class MyItemsController : Controller
{
...
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(
[Bind(Include = "ID,ItemTypeID,Description,CreateDate")] MyItem myItem)
{
if (ModelState.IsValid)
{
// Set values for behind-the-scenes columns.
myItem.ItemTypeID = 1;
myItem.CreateDate = DateTime.Now;
db.MyItems.Add(myItem);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(myItem);
}
...
}
但是,这样做的问题是,直到用户单击“保存”按钮,它才会执行。 有时候,当我第一次出现“保存”视图时,我想设置一个初始值。 在此示例中,也许我希望描述具有包含日期的默认值:
myItem.Description = string.Format("Item Created on {0:MM/dd/yyyy}", DateTime.Today);
我希望用户首次进入时,“创建”视图上的文本框默认为该值,但是他们可以键入其他内容。
为“创建”视图设置初始值的最佳方法是什么?
通过GET操作,只需修改模型即可:
public ActionResult Create()
{
var myItem = new myItem();
myItem.Description = string.Format("Item Created on {0:MM/dd/yyyy}", DateTime.Today);
return View(myItem);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.