C# TextBoxforHelper在日期中混合了日期和月份 请考虑下面的例子:
视图模型C# TextBoxforHelper在日期中混合了日期和月份 请考虑下面的例子:,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,视图模型 public class FooViewModel { public DateTime Date { get; set; } } 控制器 public class HomeController : Controller { [HttpGet] public ActionResult Index(FooViewModel foo) { return View(foo); } [HttpPost] public A
public class FooViewModel
{
public DateTime Date { get; set; }
}
public class HomeController : Controller
{
[HttpGet]
public ActionResult Index(FooViewModel foo)
{
return View(foo);
}
[HttpPost]
public ActionResult Submit(FooViewModel foo)
{
return RedirectToAction("Index", foo);
}
}
@model MvcApplication1.Models.FooViewModel
<h1>@Model.Date</h1>
@using (Html.BeginForm("Submit", "Home", FormMethod.Post))
{
@Html.TextBoxFor(m => m.Date)
<input type="submit" value"Submit" />
}
实际上,我试图格式化编辑器的值:
@Html.TextBoxFor(m=>m.Date,新的{value=Model.Date.ToString(“dd.MM.yyyy”)}
EditorFor
helper来替代模板DataAnnotations
:[DisplayFormat(ApplyFormatInEditMode=true,DataFormatString=“{0:MMM/dd/yyyy}”)]
最后,我(遵循)设法只使用原始HTML,也就是说,
DateTime
没有助手方法:
public static MvcHtmlString GetDateEditor(this FooViewModel model)
{
string temp = "<input id=\"Date\" type=\"text\" value=\"{0}\" name=\"Date\"
data-val-required=\"Please, enter a valid date\"
data-val=\"true\" />";
return MvcHtmlString.Create(
string.Format(temp,
model == null
? string.Empty
: model.Date.ToString("dd.MM.yyyy")));
}
公共静态MvcHtmlString GetDateEditor(此FooViewModel模型)
{
字符串temp=“”;
返回MvcHtmlString.Create(
字符串格式(临时,
模型==null
?字符串。空
:model.Date.ToString(“dd.MM.yyyy”);
}
如果有一种方法可以实现与任何帮助器方法相同的结果,这对我来说仍然是一个秘密…请尝试稍微更改的版本:
@Html.TextBoxFor(m=>m.Date,new{@Value=Model.Date.ToString(“dd.MM.yyyy”)}
如果设置日期格式怎么办?@HanletEscaño我确实需要在编辑器中设置日期格式,这也确实应该解决问题。但是,我还是没能格式化它……我会在一段时间内描述我在这个问题上的尝试,我猜数据库中的日期格式是不同的,这就是为什么它会导致问题的原因。你可以将日期格式应用到你的ViewModel(如果你使用它们绑定到视图?@dakait抱歉,你在说什么数据库?这个例子根本没有数据库。@KonstantinVasilcov,你不能在你的模型中定义格式吗,就像在问题中一样,我完全确定我在开始时用大写字母V
和@
尝试了这个方法,但它不起作用。我错了。。。
public static MvcHtmlString GetDateEditor(this FooViewModel model)
{
string temp = "<input id=\"Date\" type=\"text\" value=\"{0}\" name=\"Date\"
data-val-required=\"Please, enter a valid date\"
data-val=\"true\" />";
return MvcHtmlString.Create(
string.Format(temp,
model == null
? string.Empty
: model.Date.ToString("dd.MM.yyyy")));
}