【问题标题】:MVC 6 Best way to send parameters to viewMVC 6 发送参数到视图的最佳方式
【发布时间】:2016-01-08 11:51:59
【问题描述】:

我想知道将参数发送到视图的最佳方式是什么。 这是我第一次使用 MVC。 我有一个菜单,我想根据选择的项目菜单更改项目菜单类。 例如,我有一个包含主页、产品、关于的菜单。

<div class="nav-main-item">
<a asp-controller="Home" asp-action="About">
            <div class="top-solid-line selected"></div>
            <div class="row nav-item">
                <div class="item-line-1">
                    Home
                </div>
            </div>
            </a>
</div>
<div class="nav-main-item">
<a asp-controller="Home" asp-action="Products">
            <div class="top-solid-line"></div>
            <div class="row nav-item">
                <div class="item-line-1">
                    Products
                </div>
            </div>
            </a>
</div>
<div class="nav-main-item">
 <a asp-controller="Home" asp-action="About">
            <div class="top-solid-line"></div>
            <div class="row nav-item">
                <div class="item-line-1">
                    About
                </div>
            </div>
            </a>
</div>

如果我选择产品,我想将“已选择”类添加到它,并删除选择的类到项目菜单之前被选中,依此类推。 我知道如何在 jquery 中执行此操作,非常简单,但问题是当我单击其中一个项目菜单时,所选类在主项目菜单中继续,那是因为我在主项目菜单上初始化了所选项目。 我需要某种参数来传递给视图,并根据该值将所选的类添加到所选的项目菜单中。 我知道应该很简单,任何帮助将不胜感激! 谢谢。

【问题讨论】:

    标签: c# jquery


    【解决方案1】:

    在控制器中,您可以使用return View(model),其中模型是一些变量或对象。例如,在 cshtml 文件中,您可以声明 @Model int,当传递一个整数并像普通变量一样访问它时,如 model。例如:@if (model == 1){ your code here }

    编辑:您还可以向 ViewBag 添加参数(谷歌一下,有很多示例),但我会使用该模型,因为它是强类型的。

    【讨论】:

    • 但是您认为是否有必要为一个参数创建一个模型,如果我想将多个模型返回到我的视图中,我可以这样做吗?例如,如果我想向视图发送一个列表,以及你写给我的一个变量......
    • 据我所知,您只能传递一个模型,但您可以创建一个将您的模型与其他变量合并的类型,并将其作为模型传递。否则你必须使用 Viewbag(对于一个简单的参数,这甚至可能比创建复杂类型更好)
    • 没问题,很高兴我能帮上忙
    • 如果您想在同一个视图中使用两个或多个模型,您可以查看此链接:stackoverflow.com/questions/30925122/…
    • 这正是我已经描述过的;将所有模型和参数组合成一个模型。
    【解决方案2】:

    ASP.NET MVC 发送多个数据到视图

    我的看法

    ViewBag, ViewData,TempData 是基本的解决方法 exm: (alert, message, script vb. other run client-side code and single data) 但是写了一个很长的代码行这个肮脏和复杂。但是使用 ViewModel 属性是最好的解决方案,因此您的代码不复杂且完全兼容面向对象的编程架构。

    Understanding ViewModel

    【讨论】:

    • 如果 ViewModel 迫使您创建更复杂的类型,它并不是最好的解决方案。对于简单的参数,Viewbags 更具可读性。
    • 请您尝试阅读我的信息并思考。我知道如何使用 Viewbag、ViewData、TempData vb 的字段。目的。我推荐的解决方案是 ViewModel 如此干净和可用性。但是简单的问题当然是使用 ViewModel,ViewBag, Tempdata。
    猜你喜欢
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 2021-03-20
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    相关资源
    最近更新 更多