一个控制器的两个视图

Mas*_*yah 0 c# asp.net-mvc listview

我目前有一个视图页面,将用户列为带有图像的图库,但我还想创建一个按名称列出用户的视图页面.我想为他们两个使用一个控制器,我创建了一个ListView页面,并在orginial View页面中按图像显示用户 - 我有一个链接来查看ListView页面.我尝试点击链接,但页面没有显示.这是我有的:

图像视图页面

 <h2>Users</h2>
<div>
    <a href="~/Views/Users/ListView">Click Here for List view</a>
</div>

<section id="Images">
    <section id="users" data-bind="foreach: Users">
        <div id="nameImage">
            <figure id="content">
                <img width="158" height="158" alt="Gravatar" data-bind="attr:{src: GravatarUrl}"/>
                <figcaption>
                   ...
                </figcaption>
            </figure>
            <p data-bind="text:Name"></p>
        </div>
    </section>
</section>


@section scripts{
@Scripts.Render("~/bundles/user" + ViewBag.Layout.AppVersionForUrls)

<script type="text/javascript">
    (function ($) {
        $.views.User.GetUser('@url');
    })(jQuery);
</script>
}
Run Code Online (Sandbox Code Playgroud)

列表视图页面

<div class="accordion-inner">
<div data-bind="foreach: Users">
    <div>
        <img width="158" height="158" alt="Gravatar" data-bind="attr:{src: GravatarUrl}"/>
        <p data-bind="text:Name"></p>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

 @section scripts{
    @Scripts.Render("~/bundles/user" + ViewBag.Layout.AppVersionForUrls)

    <script type="text/javascript">
        (function ($) {
            $.views.User.GetUser('@url');
        })(jQuery);
    </script>
    }
Run Code Online (Sandbox Code Playgroud)

调节器

public ActionResult View(int id)
{
    // get the menu from the cache, by Id
    ViewBag.SideBarMenu = SideMenuManager.GetRootMenu(id);
    ViewBag.UserApiURL = "/api/User/" + id.ToString();
    return View(); 
}

public ActionResult ListView(int id)
{
    // get the menu from the cache, by Id
    ViewBag.SideBarMenu = SideMenuManager.GetRootMenu(id);
    ViewBag.RosterApiURL = "/api/User/ListView" + id.ToString();
    return View();
}
Run Code Online (Sandbox Code Playgroud)

SWe*_*eko 5

MVC中的概念是,您永远不会链接到视图,您链接到控制器中的操作,然后决定(基于传递的参数)哪个视图以及应该呈现什么模型.所以,如果您的控制器被称为UsersController,那么

<a href="~/Views/Users/ListView">Click Here for List view</a>
Run Code Online (Sandbox Code Playgroud)

行应该是:

<a href="/Users/ListView">Click Here for List view</a>
Run Code Online (Sandbox Code Playgroud)

甚至更好

@Html.ActionLink("ListView")
Run Code Online (Sandbox Code Playgroud)