2016-08-11 10 views
0

私はforeachループの中に1つのアクションリンクを持っています。モデルアイテムに応じて、値を動的に持つリンクボタンを生成しています。 これは、私は以下のように部分的なビューを呼び出していますリンクボタンをクリックすると@ html.actionlinkのパラメータをpartialviewに送ることができません

@foreach (var group in Model.records) 
{ 
    <tr> 
     <td>@Html.ActionLink(@group.clientId.ToString(), "detailsbyClientId", "DocumentVerification", new { id = @group.clientId.ToString()},null)</td> 
     <td>@group.clientName</td> 
     <td>@group.Count</td> 
    </tr> 
} 

をどのように見えるかです。

[HttpGet] 
public PartialViewResult detailsbyClientId(int? clientId) 
{ 
    return PartialView(); 
} 

私はclientIdためnull値を受け付けておりますが、@group.clientId.ToString()は有効な値が含まれています。

+1

あなたは、クエリ文字列値を作成します'id'という名前ですが、あなたのメソッドのパラメータは' clientId'です - どちらかが一致するように変更してください –

+0

ありがとうございます。 Plsは答えを入れます –

+0

@NIRANJANGそれはタイプミスですが、答えはありません。私たちはこのような疑問に特に近い理由があります。 – DavidG

答えて

0

あなたのメソッドのパラメータは、clientIdという名前が、あなたはidという名前のクエリ文字列値を生成しています。あなたは4番目のパラメータで@.ToString()を必要としない

public PartialViewResult detailsbyClientId(int? ID) 
{ 
    .... 
} 

とビューの

@Html.ActionLink(@group.clientId.ToString(), "detailsbyClientId", "DocumentVerification", new { id = group.clientId },null) 

ノートに合わせて、どちらか一方を変更する - ちょうどnew { id = group.clientId }

0

はこれを試してみてください:

ポイントは、あなたが渡している変数の名前であり、コントローラに値を期待している変数の名前は同じでなければなりません。

@foreach (var group in Model.records) 
{ 
    <tr> 
    <td>@Html.ActionLink(@group.clientId.ToString(), "detailsbyClientId", "DocumentVerification", new { clientId = group.clientId},null)</td> 
    <td>@group.clientName</td> 
    <td>@group.Count</td> 
    </tr> 
} 

[HttpGet] 
public PartialViewResult detailsbyClientId(int? clientId) 
{ 
    return PartialView(); 
} 
関連する問題