0

次のようなビューモデルがあります

 public class BusinessUnitDetail
    {
        public Guid Id { get; set; }
        public string Name { get; set; }
        public LicensesDetails LicensesDetails { get; set; }
        public RepresentativeDetails RepresentativeDetails { get; set; }
    }
 public class LicensesDetails
    {

        public string BusinessUnitName { get; set; }
        public List<LicensesVM> Licenses { get; set; }
    }
public class RepresentativeDetails
    {

        public string BusinessUnitName { get; set; }
        public List<RepresentativeVM> Representatives { get; set; } 
    }

現在、私のビューには、 List of RepresentativesList of Licensesを示す 2 つのテーブルが含まれています。これがビューです。かなり長いですが、とにかく

@{
    ViewBag.Title = "BusinessUnitDetails";
    Layout = "~/Views/shared/_BootstrapLayout.basic.cshtml";
    int snor = 1;
    int snol = 1;
}

<fieldset>
    <legend>@Model.Name <small>Representatives</small></legend>
</fieldset>
<table class="table table-striped table-hover table-bordered">
    <caption></caption>
    <thead>
        <tr>
            <th>S.No</th>
            <th>Name</th>
        </tr>
    </thead>

    @foreach (var entry in Model.RepresentativeDetails.Representatives)
    {

        <tr>
            @*@Html.HiddenFor(m=>entry.BusinessUnitId)*@
            <td>@(snor++)</td>

            <td>@entry.UserName</td>
            <td>
                <div class="btn-group" >
                    <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#">
                        Action<span class="caret"></span>
                    </a>
                    <ul class="dropdown-menu">
                        <li>@Html.ActionLink("Details", "RepresentativeDetails",routeValues:new{entry.BusinessUnitId})</li>

                    </ul>
                </div>    
            </td>
        </tr>
    }
</table>

<fieldset>
    <legend>@Model.Name <small>Licenses</small></legend>
</fieldset>
<table class="table table-striped table-hover table-bordered">
    <caption></caption>
    <thead>
        <tr>
            <th>S.No</th>
            <th>Kind</th>
        </tr>
    </thead>

    @foreach (var entry in Model.LicensesDetails.Licenses)
    {

        <tr>
           @* @Html.HiddenFor(m=>entry.BusinessUnitId)*@
            <td>@(snol++)</td>

            <td>@entry.LicenseName</td>
            <td>
                <div class="btn-group" >
                    <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#">
                        Action<span class="caret"></span>
                    </a>
                    <ul class="dropdown-menu">
                        <li>@Html.ActionLink("Details", "LicenseDetails",routeValues:new{entry.BusinessUnitId})</li>

                    </ul>
                </div>    
            </td>
        </tr>
    }
</table>

ライセンス テーブルの一部の行の[詳細]アクションをクリックすると、に記載されているアクション メソッドにリダイレクトされると思っていましたが、そうではありません。詳細アクションをクリックしたときのルートはLicenseDetailsHtml.ActionLink

Customer/businessunit/LicenseDetails?BusinessUnitId=25c70a1d-0ed5-406f-8cae-1c6c1bf7d0da

LicenseDetails?BusinessUnitId=部分がどのように生成されているのか、またアクションがコントローラーの LicenseDetails メソッドに転送されない理由がわかりません。2 番目のテーブルの詳細アクションをクリックすると、適切な Guid id を持つ適切なコントローラー アクションに転送されるようにするにはどうすればよいですか?

編集 1: ライセンス詳細アクション メソッド

public ActionResult LicenseDetails(Guid licenseId)
        {
            var licenseDetails = _businessUnitRepository.GetLicenseDetail(licenseId);
            return View(licenseDetails);
        }
4

2 に答える 2

0

次の構文を試してください。

@Html.ActionLink("Details", "LicenseDetails", new { licenseId = entry.BusinessUnitId })
于 2013-08-13T14:49:06.537 に答える