2010-09-04 59 views
0

请在下面找到我的ActionResult指数:指数的ActionResult返回404

public ActionResult Index(string SectionText) 
{ 

    var products = from p in db.Products 
        where p.CategoryID == SectionText 
        //orderby gs.SortBy 
        select p; 

    return View(products.ToList()); 
} 

这是抛出的错误如下: - '/' 中应用

服务器错误。

无法找到该资源。

说明:HTTP 404资源 你正在寻找(或它的 一个依赖项)可能已被移除, 更名,或者是 暂时不可用。请 查看以下URL并确保 拼写正确。

请求的URL: /节/子板-894/

任何想法,将不胜感激。这是使用内置和Web服务器。

感谢

回答

0

那么您请求/Sections/daughterboards-894并没有任何东西会涉及此网址到Index行动。如果您使用的是默认路由你的要求应该是这样的:/sections/index/daughterboards-894

当然,这是假设你有能力处理这个URL路径:

routes.MapRoute(
    "Default", 
    "{controller}/{action}/{SectionText}", 
    new { 
     controller = "Home", 
     action = "Index", 
     SectionText = UrlParameter.Optional 
    } 
); 

如果你想有一个像/Sections/daughterboards-894/的网址您将需要设置一个特殊的路线吧:

routes.MapRoute(
    "MySpecialUrl", 
    "Sections/{SectionText}", 
    new { 
     controller = "Sections", 
     action = "Index", 
     SectionText = UrlParameter.Optional 
    } 
); 

备注:作为一个方面说明我会建议你抽象的数据访问到存储库,而不是直接在控制器中访问它。这将使您的代码更容易进行单元测试。

+0

谢谢我添加了路线,但这并没有达到预期的效果,我仍然得到相同的错误 – ashga 2010-09-04 10:13:31

+0

只是更新此链接在这里工作,但如果我删除索引它没有。但索引作为默认选项指定为 http:// localhost:21063/Sections/Index/firewalls-hardware-832 - works http:// localhost:21063/Sections/firewalls-hardware-832 - does not work .. – ashga 2010-09-04 10:38:25

+0

谢谢我想出了新的路线工程,但我需要把它放在默认路线学校男孩错误! – ashga 2010-09-04 10:45:05