gpt4 book ai didi

asp.net-mvc - ASP.NET MVC Controller 参数可选(即 Index(int?id))

转载 作者:行者123 更新时间:2023-12-02 11:15:26 26 4
gpt4 key购买 nike

我有以下场景:我的网站显示文章(由管理员输入。如博客)。

因此,要查看文章,用户会被引用到 Home/Articles/{article ID}。

但是,用户可以使用 jsTree 列表从 Articles.aspx View 本身中选择要查看的文章。

所以我需要做的是能够区分两种情况:用户正在访问特定的文章,或者他只是试图访问“主”文章页面。我尝试将“Articles” Controller 参数设置为可选(int?id),但随后我在“使用” Controller 内的 id 值时遇到问题。

处理这种情况的最佳方式是什么?也许我只是需要一个更好的逻辑来检查“url”中是否提供了 id 参数?

我试图避免使用两个 View / Controller ,只是出于代码重复的原因。

最佳答案

使用单独的操作,例如:

public ActionResult Articles() ...
public ActionResult Article(int id) ...

或者将其移动到文章 Controller (使用默认路由的 URL 为:ArticlesArticles/Detail/{id}):

public class ArticlesController : Controller
{
public ActionResult Index() ...
public ActionResult Detail(int id) ...
}

如果您仍然必须像您发布的那样使用它,请尝试以下之一:

public ActionResult Articles(int id = 0)
{
if(id == 0) {
return View(GetArticlesSummaries());
}
return View("Article", GetArticle(id));
}
public ActionResult Articles(int? id)
{
if(id == null) {
return View(GetArticlesSummaries());
}
return View("Article", GetArticle(id.Value));
}

关于asp.net-mvc - ASP.NET MVC Controller 参数可选(即 Index(int?id)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3863678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com