34781


Viewからリンクをクリックした時に、idの中身をContorollerで比較して先頭の文字によって処理をかえたいのですが、Viewからどのようにidを取得するのかが出来なかったので教えてください。  
下記でいうとid="a_listItem.Id"のa_listItem.IdをContolloerで取得したいです。  
お願いします。

view.cshtml

[code]

    @using (Ajax.BeginForm("IndexAjaxModal", "InformationList", new AjaxOptions() { HttpMethod = "POST", UpdateTargetId = "resultAjaxModal" }, new { name = "formAjaxModal" })){<input type="submit" hidden="hidden" name="submitAjaxModal" />@Html.TextBoxFor(e => e.SelectedInformation.Id, new { id = "idAjaxModal", type = "hidden" })
    
    
     @foreach (var item in Model.ZentaiList.Select((Value, Index) => new { Value, Index }))
        {
            var listItem = item.Value;
            <tr>
                <th>@item.Index</th>
                <th>@listItem.TourokuNichizi</th>
                <th><a href="javascript:void(0)" class="modal-open" data-target="con" id="a_@listItem.Id">ListItem.Title</a>
            </tr>
    
        }
    
    }
    
[/code]

[code]

        @section scripts{
    <script type="text/javascript">
    $(function () {
            //クリック
            $('.modal-open').click(function () {
                //
                var id = $(this).attr('id');
                ajax_modal(id);
    
    
                var modal_id = $(this).attr('data-target');
                $('.tr_hide').css({ display: 'none' });
    
    
                modal_open(modal_id);
            });
        });
    
[/code]

Controller.cs

[code]

     public ActionResult IndexAjaxModal(InformationListIndexModel model )
        {
         if(○○..StartsWith())
           {
            }
        }
    
[/code]


CC BY-SA 3.0
2017-05-17T05:04:04.213
34770
2017-05-17T09:12:15.950
2017-05-17T06:02:45.103
23086
23086
question
c# asp.net mvc
Viewからidの中身をControllerにおくる方法


>
[code]

>     @Html.TextBoxFor(e => e.SelectedInformation.Id, new { id =
> "idAjaxModal", type = "hidden" })
>  
[/code]

この値を設定したいということでしょうか？

**通常は**
ヘルパーメソッドで生成される要素の`id`は`Html.IdFor`で求められますので、ビューのレンダリング時に`<script>`タグの中でヘルパーメソッドを使用しておけばJavaScriptから使用可能になります。たとえば`jQuery`であれば

$('#@Html.IdFor(e => e.SelectedInformation.Id)').val(id);

のように記述すれば

$('#SelectedInformation_Id').val(id);

が出力され、クリックイベントの発生時に`id`が反映されます。ただ **質問のコードでは`id`を変更されている**ので単純に

$('#idAjaxModal').val(id);

とすればよいです。

なお`<input type="hidden" />`を出力したい場合は`TextBoxFor`ではなく`HiddenFor`を使用してください。


CC BY-SA 3.0
2017-05-17T09:07:12.450
34781
2017-05-17T09:12:15.950
2017-05-17T09:12:15.950
5750
5750
34770
answer