繁体   English   中英

创建时的ASP.Net MVC初始值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM