【问题标题】:How to add a variable to a route如何将变量添加到路由
【发布时间】:2021-03-03 10:42:38
【问题描述】:

我是 MVC 的新手,对路由的工作原理有点了解。目前,我的路线包含课程的主题名称,但我也希望它包含教授 ID。

如果主题名称和教授 ID 来自 2 个不同的模型,我该如何做到这一点?

因此,例如,我目前正在通过以下方式路由主题名称:

@model List<CourseModel>

<h1>
    @foreach (var course in Model)
    {
    <a asp-controller="Course" asp-action="Index" asp-route-SubjectName="@course.SubjectName"> @course.SubjectName </a>
    <br />
    }
</h1>

但是,正如我上面所说,我想放入路由的教授ID来自另一个模型(但我只能在视图中调用一个模型)所以我感觉有点卡住了。

我上面的代码是教授/详细信息视图,所以我觉得从教授控制器中提取数据应该很简单,但我一定是弄错了。教授控制器中的变量称为“ID”,但在尝试将其值放入路由链接时,我似乎无法在视图中访问它。

有什么建议吗?我将不胜感激

【问题讨论】:

标签: asp.net asp.net-mvc asp.net-core asp.net-mvc-4 model-view-controller


【解决方案1】:

如果你想实现这一点,你应该有一个这样的模型,因为你是在教授 n 门课程的教授的详细视图中。

public class ProfessorDetailsViewModel
{
    /*
       All the Professor Properties
    */
    public int Id {get; set;}
    public List<CourseViewModel> Courses {get; set}
}

然后你可以像这样使用你的剃刀视图:

@model ProfessorDetailsViewModel

<h1>
    @foreach (var course in Model.Courses)
    {
    <a asp-controller="Course" asp-action="Index" asp-route-SubjectName="@course.SubjectName" asp-route-ProfessorId="@Model.Id"> @course.SubjectName </a>
    <br />
    }
</h1>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    • 2019-10-14
    相关资源
    最近更新 更多