【问题标题】:routes to news page - Will not show me the page到新闻页面的路线 - 不会向我显示该页面
【发布时间】:2017-09-18 12:42:10
【问题描述】:

这就是我做新闻页面的方式,现在我是这样的:

routes.MapRoute("News", "News/{url}/{id}", new
        {
            controller = "News",
            action = "Index",
            url = UrlParameter.Optional,
            id = UrlParameter.Optional
        });

现在我有:www.helloworld.com/news/hello-world/123

我将拥有 www.helloworld.com/hello-world/123

我这里也有这个作为通用内容

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new
            {
                controller = "index",
                action = "Index",
                id = UrlParameter.Optional
            }
        );

错误:

参数字典包含“HelloWorld.Controllers”中方法“System.Web.Mvc.ActionResult Index(System.String, Int32)”的不可为空类型“System.Int32”的参数“id”的空条目。新闻控制器'。可选参数必须是引用类型、可空类型或声明为可选参数。 参数名称:参数

routes.MapRoute("News", "{url}/{id}", new
            {
                controller = "News",
                action = "Index",
                url = UrlParameter.Optional,
                id = UrlParameter.Optional
            });

【问题讨论】:

  • 您在使用此设置时遇到了什么问题?
  • 我更新了@ChetanRanpariya
  • 所以你会认为我只能在/url/id之前写{controller} @TechGirl

标签: c# model-view-controller routes


【解决方案1】:

这不是在查询字符串中传递值的好方法。首先,您需要创建一个NewsContoller,然后您的 URL 将是 www.helloworld.com/news/123,您需要在控制器中创建一个操作方法-

 public class NewsController : Controller
{
    public ActionResult Index(int id)
    {
        return View();
    }
}

您也可以参考以下链接了解更多信息

https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions-1/controllers-and-routing/asp-net-mvc-routing-overview-cs

如果你喜欢,请标记答案。

【讨论】:

  • 我知道。但这不是我的问题,我知道我想要新闻并且只有 url + id
  • 您可以使用 -www.helloworld.com/news/123 或 www.helloworld.com/news?id=123
  • url 必须是一个控制器然后才能工作。就像新闻控制器
猜你喜欢
  • 2015-08-26
  • 1970-01-01
  • 2018-12-06
  • 1970-01-01
  • 2015-07-08
  • 2020-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多