gpt4 book ai didi

c# - HiddenFor 助手的问题

转载 作者:行者123 更新时间:2023-11-30 15:46:05 27 4
gpt4 key购买 nike

型号:

public sealed class Model
{
public string Value { get; set; }
}

Controller :

[HandleError]
public class HomeController : Controller
{
[HttpGet]
public ActionResult Index()
{
return View(new Model { Value = "+" } );
}

[HttpPost]
public ActionResult Index(Model model)
{
model.Value += "1";
return View(model);
}
}

查看:

<%using (Html.BeginForm()){%>
<%: Model.Value %>
<%: Html.HiddenFor(model => model.Value) %>
<input type="submit" value="ok"/>
<%}%>

我每次提交表单结果都是

<form action="/" method="post">+1
<input id="Value" name="Value" type="hidden" value="+">
<input type="submit" value="ok">
</form>

这意味着 HiddenFor 助手不使用 Model.Value 的实际值,而是使用传递给 Controller ​​一的值。它是 MVC 框架中的错误吗?有人知道解决方法吗?

更新:EditerFor 的工作方式类似。

最佳答案

这将解决您的问题,但这不是推荐的解决方案。

可在此处找到更多信息:http://blogs.msdn.com/b/simonince/archive/2010/05/05/asp-net-mvc-s-html-helpers-render-the-wrong-value.aspx

[HttpPost]
public ActionResult Index(Model model)
{
model.Value += "1";

ModelState.Clear();

return View(model);
}

[编辑]

如果您不想使用 <input id="Value" name="Value" type="hidden" value="<%: Model.Value %>"/> 的另一种选择

[HttpPost]
public ActionResult Index(FormCollection collection)
{
var m = new Model();

m.Value = collection["Value"] + "1";

return View(m);
}

关于c# - HiddenFor 助手的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4560947/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com