【发布时间】:2012-10-18 17:39:19
【问题描述】:
我通过选择 (ASP.Net MVC 2 Web Application) 在 MVC2 中创建了一个应用程序。这提供了一些 Home/About Controllers/Models/Views。
我另外创建了一个具有如下索引名称的模型...
namespace MvcApplication1.Models
{
public class Index
{
[DataType(DataType.Text)]
public String Name { get; set; }
}
}
以下是我的索引视图
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Index
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% using (Html.BeginForm())
{%>
<%:Html.TextBoxFor(x=> x.Name) %>
<input type="submit" name="Click here" />
<%} %>
</asp:Content>
下面是我的控制器
[HttpPost]
public ActionResult Index(Index Model)
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
问题
当我保持索引控制器如下所示。如果我点击提交按钮。这是清除 TextBox 控件。如下所示
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
如果将模型作为参数合并到动作方法中,文本框将不会被清除...
这种行为的原因是什么?
【问题讨论】:
-
没有得到问题...你想做什么?什么不工作?
-
@gdoron - 如您所知,我们在 ASP.Net 中有 ViewState,用于在 PostBack 后保留 TextBox 中的数据。对?但是 MVC 是无状态的。我希望在 MVC 的文本框中保留数据。实际上我是 MVC 的新手。您能否解释一下 MVC 在包含模型参数后如何在 PostBack 后保留文本框中的数据?