2017-07-12 11 views
0

新しい値を含めるにはラジオボタンを変更する必要がありました。 これを行うには、辞書をIDictionaryに入れなければなりませんでした。キーはIDictionaryのために素晴らしいですが、Dictionary intとstringはまったく引き込まれません。 私はフロントエンドコードだと思う。 誰かが私が間違っていることを見ることができ、修正する方法の例を提供できますか?内の辞書IDictionary MVC

アクションパラメータを表示

<fieldset> 
<legend class="sr-only">Actions</legend> 
<input type="hidden" name="customerId" value="@account.CustomerId" /> 
<input type="hidden" name="yearSetupId" value="@account.YearId" /> 
<label class="radio-inline"><input type="radio" name="accountActions[@(account.CustomerId)].Key[@(account.Id)].Value" value="" checked="checked">Do nothing</label> 
@{ 
    var possibleActions = account.Balance < 0 ? new[] { 
    BalanceAdjustmentType.Zeroed, BalanceAdjustmentType.Issued } 
            : new[] { BalanceAdjustmentType.Under, BalanceAdjustmentType.Sent }; 
           } 
@foreach (var action in possibleActions) 
           { 
<label class="radio-inline"><input type="radio" name="accountActions[@(account.CustomerId)].Key[@(account.YearId)].Value" value="@action.BalanceId">@action.Text</label> 
           } 
</fieldset> 

答えて

0

IDictionary<String, Dictionary<int, String>> 

コントローラで私はあなたのコントローラのパラメータは、実際に意味を理解していませんでした。 しかし、私はあなたのビュー内の "accountActions"はあなたの "コントローラパラメータ"の変数だと思います。 もしそうなら、あなたはaccountActions [Key] [InnerKey]によってネストされたdict値にアクセスできます。

<fieldset> 
    <legend class="sr-only">Actions</legend> 
    <input type="hidden" name="customerId" value="@account.CustomerId" /> 
    <input type="hidden" name="yearSetupId" value="@account.YearId" /> 
    <label class="radio-inline"> 
     <input type="radio" name="@accountActions[account.CustomerId][account.Id]" value="" checked="checked"> 
     Do nothing 
    </label>  

    @{ 
     var possibleActions = account.Balance < 0 
     ? new[] { BalanceAdjustmentType.Zeroed, BalanceAdjustmentType.Issued } 
     : new[] { BalanceAdjustmentType.Under, BalanceAdjustmentType.Sent }; 
    } 

    @foreach (var action in possibleActions) { 
     <label class="radio-inline"> 
      <input type="radio" name="@accountActions[account.CustomerId][account.YearId]" value="@action.BalanceId"> 
      @action.Text 
     </label> 
    } 
</fieldset> 
+0

ありがとうございます。上記を使用すると、私のコントローラーに渡される結果はCustomerIdをキーとして値が0になるため、入れ子になった値のYearIdまたはBalanceIdが表示されません。 – CheezStix

+0

私は内部のキーがAccountIdまたはYearIdだと考える必要があると思います。私はこれら2つが同じdictに含まれているとは思わない。 6行目とコードスニペットのほうのループを確認してください。 –

関連する問題