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");

どちらもまだnullとして出ています。

4

2 に答える 2

2

と呼ばれるクラスのプロパティを使用しています。これは、非表示のフィールド属性に対してCustomerData生成されます。次のように非表示のタグを手動でレンダリングしてみてください。CustomerData.AccountIdname

<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 に答える