1

在 RegisterRoutes 方法的 Global.asax.cs 文件中,我把

routes.MapRoute("messages", 
    "Message/{id}", 
    new { controller = "Archive", action = "Message", id = 0 });

然后我创建了这个控制器:

namespace TestingApp.Controllers
{
    public class ArchiveController : Controller
    {
        public string Message(int id)
        {
            return "testing: you will receive the message: " + id.ToString();
        }
    }
}

但是在我的浏览器中,当我去:

http://.../Message/34

我得到一个404。

我还需要定义什么才能让路由找到我的控制器?

4

2 回答 2

4

尝试在默认路由之前定义您的特定路由:

routes.MapRoute(
    "messages",
    "Message/{id}",
    new { controller = "Archive", action = "Message", id = 0 });

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = "" });
于 2009-01-15T10:31:54.100 回答
1

我认为您的 Message 方法应该返回一个 ActionResult 实例:

public ActionResult Message(int id)
{
    return new ContentResult {
        Content = "testing: you will receive the message: " + id.ToString()
    };
}
于 2009-01-15T10:38:26.317 回答