Asp.net 用于生成空白字段的文本框

Asp.net 用于生成空白字段的文本框,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我的MVC应用程序有一个奇怪的问题 当用户从下拉列表中选择日期时,将清除StartDate和EndDate字段 我有以下代码片段: <label>Start date: @Model.StartDate</label> @Html.TextBoxFor(s => s.StartDate) 开始日期:@Model.StartDate @Html.TextBoxFor(s=>s.StartDate) 奇怪的是,你可以看到我在标签上的输出位置,日期就在

我的MVC应用程序有一个奇怪的问题

当用户从下拉列表中选择日期时,将清除
StartDate
EndDate
字段

我有以下代码片段:

    <label>Start date: @Model.StartDate</label>
    @Html.TextBoxFor(s => s.StartDate)
开始日期:@Model.StartDate
@Html.TextBoxFor(s=>s.StartDate)
奇怪的是,你可以看到我在标签上的输出位置,日期就在那里。文本框未填充

我已经检查了生成的标记,文本框没有被填充

    <label>Start date: 19/05/2013</label>
    <input id="StartDate" name="StartDate" type="text" value="" />        <br />
开始日期:2013年5月19日

我错过了什么

为了添加更多的信息,当最初填充页面时,会输出默认的开始日期和结束日期。当
更改时,jQuery会清空这些字段。如果我将该位注释掉,那么字段将保留其以前的值,而不是空白值。本质上,提交给服务器的任何内容都是输出,而不是模型中的值。

而不是这样做

   <label>Start date: @Model.StartDate</label>
    @Html.TextBoxFor(s => s.StartDate)

认为您的模型是一个名为以下内容的类:

  public class What
    {
        public string StartDate { get; set; }
    }
然后,假设您的应用程序是“MyApplication”,您需要将其添加到视图中,就像该视图是强类型的一样:

@using MyApplication.Models;
@inherits System.Web.Mvc.WebViewPage<What>
@使用MyApplication.Models;
@继承System.Web.Mvc.WebViewPage
那么,我们应该按照你的预期运行吗

本质上,提交给服务器的任何内容都是输出,而不是模型中的值

这种行为实际上是故意的。其思想是,用户通常希望在文本框中看到他们提交给服务器的内容


有关详细说明和解决方法,请参阅。

您在类似的stackoverflow问题中找到了解决方案,但不确定发生了什么。你的代码在我这边运行得很好。文本框已正确填充。也许您需要添加更多的代码。@AlbertoLeón模型中的字段是一个字符串,无论如何谢谢。@JasonLi我会的,但我真的不知道该字段是空的,而标签不是空的。逻辑原因可能是您没有用文本设置StartDate字符串字段。是艾美。所以TextBoxFor没有任何错误,就是没有填充字段。请给我们设置字段起始日期的代码
  public class What
    {
        public string StartDate { get; set; }
    }
@using MyApplication.Models;
@inherits System.Web.Mvc.WebViewPage<What>