我有这样的问题。我在控制器中更改了模型字段,但没有看到更改。
以下是代码部分:
这是观点 的Index.aspx
<%Html.BeginForm("Index", "First");%>
<p>
<%=Html.TextBox("Title") %>
</p>
<p>
<%=Html.TextBox("Price") %>
</p>
<input type="submit" value="Submit" />
<%Html.EndForm();%>
这是控制器:
FirstController.cs
public class FirstController : Controller
{
[AcceptVerbs(HttpVerbs.Get)]
public ViewResult Index()
{
return View(new MyModel());
}
[AcceptVerbs(HttpVerbs.Post)]
public ViewResult Index(MyModel k)
{
k.Title = "Title";
return View(k);
}
这是模特:
MyModel.cs
公共类MyModel {
public String Title { get; set; }
public Decimal Price { get; set; }
}
当我更改控制器中的“标题”文本框时,我看不到视图中的更改
public ViewResult Index(MyModel k)
{
k.Title = "Title";
return View(k);
}
文本框在提交前保留其值。 我的代码中是否有任何错误。
当我使用html标准输入标记而不是Html.TextBox时,不会出现此问题:
input type="text" id="Title" name="Title" value="<%=Model.Title %>
提前谢谢。
答案 0 :(得分:1)
public ViewResult Index(MyModel k)
{
ModelState.Clear();
k.Title = "Title";
return View(k);
}
您是否尝试过添加ModelState.Clear(),如上例所示? 希望这有帮助!
答案 1 :(得分:0)
我有这样的问题,但我认为我们都不了解MVC应用程序的生命周期。 让我们等一下其他答案
答案 2 :(得分:0)
你应该这样做:
<%Html.BeginForm("Index", "First");%>
<p>
<%=Html.TextBox("Title",Model.Title) %>
</p>
<p>
<%=Html.TextBox("Price",Model.Price) %>
</p>
<input type="submit" value="Submit" />
<%Html.EndForm();%>
Html.TextBox()有一个覆盖版本取对象值arg来填充文本值!