1

我有以下看法:

@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)

并作为:

@Html.Hidden(usr.AccountId)

我添加这些行只是为了验证控制器代码:

var acctid = formCollection["AccountId"];
acctid = formCollection.Get("AccountId");

两者仍然为空。

4

2 回答 2

2

您正在使用一个名为CustomerData.it 的类的属性,它将CustomerData.AccountId为您的隐藏字段name属性生成。尝试像这样手动呈现隐藏标签:

<input type="hidden" name="AccountId" value="@usr.AccountId">
于 2012-12-04T19:08:37.033 回答
0

您绑定错误的隐藏字段名称

尝试:

@Html.Hidden("AccountId")

同样在服务器的方法帖子中,您可以尝试

[HttpPost]
public ActionResult ShowCustomer2(int accountId, FormCollection formCollection)
于 2012-12-04T20:42:26.237 回答