gpt4 book ai didi

c# - MVC 4 @HTML.HiddenFor 没有在回发时更新

转载 作者:IT王子 更新时间:2023-10-29 04:33:03 26 4
gpt4 key购买 nike

<分区>

一系列页面 View 的 View 状态存在问题——在 Razor 中的页面初始 View 中,我使用的是 Html.HiddenFor如下:

    @Html.HiddenFor(x => Model.err)
@Html.HiddenFor(x => Model.errField)
@Html.HiddenFor(x => Model.errMessage)
@Html.HiddenFor(x => Model.IsMove)

这似乎工作正常。我隐藏的输入标签包含正确的值。但是,当我提交表格时 [HTTPPost]并在我的 Controller 操作中更新模型......

       model.err = transHelper.err;
model.errField = transHelper.errField;
model.errMessage = transHelper.errMessage;
return View(model);

隐藏字段似乎没有更新,它们包含初始 View 中的原始值。但是,当我像这样在同一个 Razor View 中的另一个上下文中使用这些字段时......

     @*      
this seems to not update correctly...

@Html.HiddenFor(x => Model.err)
@Html.HiddenFor(x => Model.errField)
@Html.HiddenFor(x => Model.errMessage)
@Html.HiddenFor(x => Model.IsMove)

*@
<input type="hidden" id="err" value="@Model.err" />
<input type="hidden" id="errField" value="@Model.errField" />
<input type="hidden" id="errMessage" value="@Model.errMessage" />
<input type="hidden" id="IsMove" value="@Model.IsMove" />

</div>

然后输入字段正确更新。我什至创建了一个 View 助手来帮助调试,在所有情况下,模型似乎在 HtmlHelper<TModel> 中都有正确的数据。 -- 我什至将模型返回为 return Json(model);数据很好。

此时我正在解决问题,但有人知道为什么吗 @Html.HiddenFor很脏。

更新:这是我的 Controller 操作

  [HttpPost]
public ActionResult Index(HomePageModel model)
{


// process transaction
Transactionr transr = new Transactionr();
transr.Process(model);

model.err = transr.err;
model.errField = transr.errField;
model.errMessage = transr.errMessage;

return View(model);
}

这是我的看法:

        @model App.Models.HomePageModel
@{
ViewBag.Title = "Product Categorizer";
}
<form id="formData" method="post" action="/Home/Index">
@Html.AntiForgeryToken()
<fieldset>
<div>

@Html.HiddenFor(model => model.err)
@Html.HiddenFor(model => model.errField)
@Html.HiddenFor(model => model.errMessage)
@Html.HiddenFor(model => model.IsMove)

<input type="hidden" id="myerr" value="@Model.err" />
<input type="hidden" id="myerrField" value="@Model.errField" />

</div>

<div class="section group">
<div class="col span_2_of_2">
<div class="message" id ="message">
@if (Model.err < 0)
{
<span style="color: purple;">@Model.errMessage (@Model.err) - (@Model.errField)</span>
}
else if (Model.err > 0)
{
<span style="color:red;">@Model.errMessage (@Model.err) (@Model.errField)</span>
} else {
<span>@Model.errMessage (@Model.err) (@Model.errField)</span>
}
</div>
</div>
</div>

<div class="section group" id="workspace">
@Html.Partial("_WorkspacePartial", Model)
</div>
<div class="section group" id="details">
@Html.Partial("_DetailPartial", Model)
</div>


</fieldset>
</form>

这是我的模型:

 public class HomePageModel
{
public int FromStore { get; set; }

// the "To" part of the copy/move transaction
public int ToStore { get; set; }

// a list of the copy/move transaction
public List<int> Details { get; set; }


// true is move false is copy
public bool IsMove { get; set; }

// current message
public int err { get; set; }
public int errField { get; set; }
public string errMessage { get; set; }

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