C# 隐藏字段未将值传递给控制器
这是myModelC# 隐藏字段未将值传递给控制器,c#,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,这是myModel public class myModel : myBaseModel { public string AccountName { get; set; } public string BankName { get; set; } public string BranchCode { get; set; } } 我正在使用textBoxFor从视图中获取AccountName、BankName和BranchCode @Html.LabelFor
public class myModel : myBaseModel
{
public string AccountName { get; set; }
public string BankName { get; set; }
public string BranchCode { get; set; }
}
我正在使用textBoxFor从视图中获取AccountName、BankName和BranchCode
@Html.LabelFor(m => m.AccountName, GetContentBody(101111))
@Html.TextBoxFor(m => m.AccountName)
@Html.ValidationMessageFor(m => m.AccountName)
问题是我不再需要Accountname文本框,但是我不允许从模型中删除Accountname,我应该在视图中指定此值
因此,我计划使用html.hiddenFor及其值更改此文本框,问题是hiddenfield将帐户名作为null传递给控制器
**我的问题是为什么hiddenfield将其值作为null传递?**
我删除了这个
@Html.TextBoxFor(m => m.AccountName)
并添加而不是它
@Html.HiddenFor(m=>m.AccountName, new { @Value = "defaultUserName" });
伙计,你可以替
如果您的模型已填充,将正常工作
<input type="hidden" value="@Model.AccountName" name="AccountName" />
您必须为控件命名,因为mvc就是这样映射的。您做错了。您必须使用or,看起来您遗漏了一个逗号来分隔扩展方法参数: 而不是:
@Html.HiddenFor(m=>m.AccountName new { @Value = "defaultUserName" })
您需要执行以下操作:
@Html.HiddenFor(m=>m.AccountName, new { @Value = "defaultUserName" })
当您使用参数将Html Helper控件值传递给控制器的方法时, 您必须在中提供该html帮助程序的name属性 像 和在控制器中
public ActionResult Index(string hiddenname){}
这将捕获你的视图隐藏值不清楚你在问什么?如果您没有使用/不想要
AccountName
,那么如果它为空,为什么会出现问题?如果您真的在使用它,并且希望它是一个隐藏字段,那么为什么不将您的代码显示为隐藏字段,这样我们就可以看到它,而不用猜测您做了什么?为什么不在出现问题时使用html.hiddenFor
显示代码?在创建模型时,隐藏字段将获得您设置的值。如果您将其设置为null,它将在post上以null的形式发回。在创建时给它一个值,或者用JS更改它。我删除了文本框,但我会自动插入帐户名,而无需等待用户输入,这样我就可以从视图中访问帐户名,将其分配给hiddenfields值,但它将以Null形式传递控制器显示带有隐藏字段的新代码。需要提供名称=输入中的“AccountName”
,
public ActionResult Index(string hiddenname){}