Model view controller 编辑器不呈现该值
我在制作Html.Editor以呈现所需Html时遇到问题 以下是场景:Model view controller 编辑器不呈现该值,model-view-controller,asp.net-mvc-2,asp.net-mvc-3,Model View Controller,Asp.net Mvc 2,Asp.net Mvc 3,我在制作Html.Editor以呈现所需Html时遇到问题 以下是场景: // assign the value ViewBag.BeginDate = seaBeginEnd.beginDate; //View @Html.Editor("Begin", ViewBag.BeginDate as DateTime?) //HTML Source <div class="editor-field"> <input class="text-bo
// assign the value
ViewBag.BeginDate = seaBeginEnd.beginDate;
//View
@Html.Editor("Begin", ViewBag.BeginDate as DateTime?)
//HTML Source
<div class="editor-field">
<input class="text-box single-line" id="Begin" name="Begin" type="text" value="" />
</div>
//分配值
ViewBag.BeginDate=seabginend.BeginDate;
//看法
@编辑器(“Begin”,ViewBag.BeginDate作为日期时间?)
//HTML源
我想看看2011年1月19日12:00:00 AM的值,这是ViewBag.BeginDate的值,任何见解
谢谢你的帮助
我希望看到2011年1月19日12:00:00 AM的值,这是ViewBag.BeginDate的值
通过将Begin
作为第一个参数传递给Html.Editor
helper,您不能期望出现这种情况。第二个参数的作用与您认为的不同。它只是将一些额外的视图数据发送到编辑器模板,但您绑定到的原始值称为Begin
,因此您应该为其赋值。像这样:
public ActionResult Index()
{
ViewBag.Begin = DateTime.Now;
return View();
}
然后:
@Html.Editor("Begin")
显然,每次我看到有人使用ViewBag/ViewData而不是强类型助手时,我都觉得有义务推荐视图模型和强类型助手。例如:
型号:
public class MyViewModel
{
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime Date { get; set; }
}
控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
return View(new MyViewModel
{
Date = DateTime.Now
});
}
}
以及相应的强类型视图:
@model AppName.Models.MyViewModel
@Html.EditorFor(x => x.Date)
谢谢,我从来没有想过我应该以字符串的形式传递ViewBag属性的名称。这比我想象的容易多了。顺便说一下,我使用的是强类型帮助器,但我有一些强类型类的信息,我将其作为ViewBag传递。感谢你的帮助!!!谢谢你,达林!这对我也有帮助