我有以下观点:
@using SuburbanCustPortal.SuburbanService
<br />
<br />
<table>
@if (ViewData["CustomerData"] != null)
{
foreach (var usr in (IEnumerable<CustomerData>) ViewData["CustomerData"])
{
using (Html.BeginForm("ShowCustomer2", "Customer", FormMethod.Post))
{
<tr>
@Html.HiddenFor(model => @usr.AccountId)
<td>
<input id="btn" type="submit" value="View"/>
</td>
<td>
@usr.Branch-@usr.AccountNumber
</td>
<td>
@usr.Name
</td>
<td>
@usr.DeliveryStreet
</td>
</tr>
}
}
}
</table>
<br />
我想点击按钮的AccountId。它列出了该登录中的所有帐户。
无论我如何引用它,我都会变为null:
[HttpPost]
public ActionResult ShowCustomer2(FormCollection formCollection)
{
var corpid = MiscClasses.GetCookieInfo.TokenId;
var acctid = formCollection.Get("AccountId");
MiscClasses.GetCookieInfo.CurrentAccountGuid = acctid;
var sb = new StringBuilder();
sb.AppendLine("SuburbanCustPortal,Controllers.CustomerController.ExistingAccounts");
sb.AppendLine(string.Format("corpid: {0}", corpid));
sb.AppendLine(string.Format("acctid: {0}", acctid));
Logging.LogInfo(sb.ToString(), _asName);
var cr = new CustomerRequest();
cr.CompanyId = corpid;
cr.Account = acctid;
return View("AccountScreen", _client.GetCustomerByGuid(cr));
}
有人告诉我我做错了吗?
更新
我在视图中做了以下更改:
@Html.Hidden(@usr.AccountId)
和as:
@Html.Hidden(usr.AccountId)
我添加了这些行只是为了验证控制器代码:
var acctid = formCollection["AccountId"];
acctid = formCollection.Get("AccountId");
两者仍然是空的。
答案 0 :(得分:2)
您正在使用名为CustomerData
的类的属性。它将为隐藏字段CustomerData.AccountId
attribute.try生成name
,如下所示手动呈现隐藏标记:
<input type="hidden" name="AccountId" value="@usr.AccountId">
答案 1 :(得分:0)
你绑定了错误的隐藏字段名称
尝试:
@Html.Hidden("AccountId")
也可以在服务器的方法帖子中尝试
[HttpPost]
public ActionResult ShowCustomer2(int accountId, FormCollection formCollection)