C# @Html.HiddenFor不将值传递给控制器
我知道也有类似的问题。我读过几乎所有的书(除非有人能证明不是这样) 我正在编写一个帮助台应用程序作为一个实践项目,以提高我的编程技能 我有一个创建操作,创建一个“票证”,作为该操作的一部分,我希望将该“票证”的“状态”设置为“新建”。我希望禁用它的原因是,只有具有管理员角色的用户才能更新状态(Inprogress、onhold、resolved、closed等) 以下是我到目前为止所做的尝试:C# @Html.HiddenFor不将值传递给控制器,c#,asp.net-mvc,C#,Asp.net Mvc,我知道也有类似的问题。我读过几乎所有的书(除非有人能证明不是这样) 我正在编写一个帮助台应用程序作为一个实践项目,以提高我的编程技能 我有一个创建操作,创建一个“票证”,作为该操作的一部分,我希望将该“票证”的“状态”设置为“新建”。我希望禁用它的原因是,只有具有管理员角色的用户才能更新状态(Inprogress、onhold、resolved、closed等) 以下是我到目前为止所做的尝试: <div class="form-group"> @Html.LabelF
<div class="form-group">
@Html.LabelFor(model => model.State, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@if (User.IsInRole("Admin"))
{
@Html.DropDownListFor(m => m.State, Model.States, htmlAttributes: new { @class = "form-control" })
}
else
{
@Html.DropDownListFor(m => m.State, Model.States, new { @class = "form-control", @disabled = "disabled", @id = "FakeStates" })
@Html.HiddenFor(m => m.State, Model.States)
}
@Html.ValidationMessageFor(model => model.State, "", new { @class = "text-danger" })
</div>
</div>
@LabelFor(model=>model.State,htmlAttributes:new{@class=“controllabel col-md-2”})
@if(User.IsInRole(“Admin”))
{
@DropDownListFor(m=>m.State,Model.States,htmlAttributes:new{@class=“form control”})
}
其他的
{
@DropDownListFor(m=>m.State,Model.States,new{@class=“form control”、@disabled=“disabled”、@id=“FakeStates”})
@HiddenFor(m=>m.State,Model.States)
}
@Html.ValidationMessageFor(model=>model.State,“,new{@class=“text danger”})
问题是:
该值没有到达控制器,db列的最终值为null
我可能忽略了一些简单的事情,如果是的话,请有人看一下并指出它
谢谢。试试这个:
@Html.HiddenFor(m=>m.State,new{Value=Model.States})
ps:Model.States中有值吗?试试这个:
@Html.HiddenFor(m=>m.State,new{Value=Model.States})
ps:Model.States中是否有值?您需要重新排列元素的顺序,并将HiddenFor置于DropDownListFor之上 这是因为在提交表单时,将返回第一个id与模型匹配的输入 发布到控制器时,禁用的输入未返回,这也毫无意义。所以我相信现在发生的是你的禁用下拉列表在隐藏之前被发现,因此提交了一个空值 我注意到您尝试向DropDownListFor添加不同的id,但是我不确定这在正确的模型绑定方面是如何工作的
另一种选择是显示标签,而不是禁用的下拉列表。您需要重新排列元素的顺序,并将HiddenFor置于DropDownList For之上 这是因为在提交表单时,将返回第一个id与模型匹配的输入 发布到控制器时,禁用的输入未返回,这也毫无意义。所以我相信现在发生的是你的禁用下拉列表在隐藏之前被发现,因此提交了一个空值 我注意到您尝试向DropDownListFor添加不同的id,但是我不确定这在正确的模型绑定方面是如何工作的
另一种选择是显示标签,而不是禁用的下拉列表。您使用禁用的下拉列表而不仅仅是带有值的显示器的原因是什么?您使用禁用的下拉列表而不仅仅是带有值的显示器的原因是什么?