C# asp.net html.TextBox在post请求或加载新数据后删除了该值

C# asp.net html.TextBox在post请求或加载新数据后删除了该值,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我是asp.net的新手,有一些问题。 我有一个字段firstname的文本框 <td> <%=Html.TextBox("FirstName", "")%> <%=Html.HiddenFor(model => model.Name,"TextBox")%> </td> 在viewModel中,我声明 private string _FirstName; p

我是asp.net的新手,有一些问题。 我有一个字段firstname的文本框

  <td>
             <%=Html.TextBox("FirstName", "")%>
             <%=Html.HiddenFor(model => model.Name,"TextBox")%>
        </td>
在viewModel中,我声明

 private string _FirstName;
    private string _LastName;
Html.TextBox(“FirstName”和“”)
仅使用
创建输入,因此刷新页面时无法保存值

如果您坚持不在模型中使用,则需要在帖子中发送值
保存它(例如在
viewbag
中)并显示值

您应该在viewmodel中创建更多变量。通过这种方式,它们是强类型的——以及您所获得的所有其他好处,比如post-post-repopulating(这是您在这里所缺少的)。是的,但是我只需要此表单的名字和姓氏。所以我想用javascript将其声明为全局性的,但我没有成功地在文本框中使用它来绑定它。你在混合服务器端和客户端技术。
中的任何内容都会混合使用模型和视图模型。viewmodel应该包含表单上需要的所有内容,然后映射到控制器中的模型。建议(当然,您不必遵循它)使用firstname/lastname属性创建viewmodel,并使用
@Html.TextBoxFor(m=>m.firstname)
。这可能需要稍微多做一些前期工作,但如果您遵循简单的controller->viewmodel->view模式,将为您节省大量的麻烦。千万不要使用
Html.TextBox(“Firstname”,model.Firstname)
因为它不会绑定到模型,所以您的帖子每次都会重置该值。
<td>
             <%=Html.TextBoxFor(model => model.FirstName)%>
             <%=Html.HiddenFor(model => model.Name,"TextBox")%>
        </td>
  var lastName = $('#LastName').val();
        var firstName = $('#FirstName').val();
 private string _FirstName;
    private string _LastName;