0

Index.cshtml を表示するためにデータを渡すコントローラーが 1 つあります。

public ActionResult Index()
    {
        var empId = @User.Identity.Name;
        var empDetails = empRepository.GetEmployeeDetails(empId);
        var emp = new UserViewModel {EmployeeDetail = empDetails};
        return View(emp);
    }

ビュー Index.cshtml のレイアウトは Partialview _Layout.cshtml です

@model HRM.Areas.EmployeeDetails.Models.UserViewModel
@{
       ViewBag.Title = "Index";
       Layout = "~/Areas/EmployeeDetails/Views/Shared/_Layout.cshtml";
 }

 <div>Hello</div>

_Layout.cshtmlでコントローラーアクションからIndex.cshtmlに渡したデータにアクセスしたい。

これを行う方法はありますか?

4

3 に答える 3

0

あなたの質問は私にはよくわかりません:/

私の仮定 - >コードを次のように変更すると:

 public ActionResult Index()
        {
            var empId = @User.Identity.Name;
            var empDetails = empRepository.GetEmployeeDetails(empId);
            var emp = new UserViewModel { EmployeeDetail = empDetails };

            ViewBag.UserViewModel = emp;

            return View(emp);
        }

レイアウト ページで、データにアクセスできます。

@if (ViewBag.UserViewModel != null)
{
    //do sth with ViewBag.UserViewModel here
    //for example:
    @Html.Partial("_UserView",ViewBag.UserViewModel)

}

達成したいことを詳細に説明していただくと、適切な回答を提供しやすくなります。

于 2013-01-16T14:30:32.280 に答える
0

あなたの質問は、値にどのようにアクセスしたいかについて明確ではないので、ここで仮定しています:

ビューからのデータをページからのレンダリングに含めたい場合はlayout、RenderSection メソッドを使用できます。

レイアウト ページ:

@RenderSection("ViewSection", false)

ページを表示:

@section ViewSection {
<div>
    <label>Emp Name:</label>
    @model.EmpDetails.Name    
</div>

}

Layoutがレンダリングされると、一致するビュー内のセクションが検索され、レンダリングされます。2 番目のパラメーターとして false を渡すと、セクションが不要であることをレイアウトに伝えます。

詳細については、 http ://weblogs.asp.net/scottgu/archive/2010/12/30/asp-net-mvc-3-layouts-and-sections-with-razor.aspx を参照してください。

于 2013-01-15T11:53:47.473 に答える
-1

次のようにモデル内のデータにアクセスできます。

@Model.EmployeeDetail ...

于 2013-01-15T11:51:35.007 に答える