Что я делаю не так с этим в asp.net-mvc? - PullRequest
1 голос
/ 26 апреля 2010

Я дал это в моем site.master

<li><%= Html.ActionLink("Material", "Index", "Material")%></li>

Но моя ссылка, похоже, не получает мой material метод контроллера Index ... У меня есть это в моем глобальном файле asax,

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

            routes.MapRoute(
                "Default",                                              
                "{controller}/{action}/{id}",                            
                new { controller = "Material", action = "Index", id = "" }  
            );

        }

Мой контроллер:

public class MaterialController : Controller
{
    //
    // GET: /Material/
    Material material = new Material();
    public ActionResult Index()
    {
        var materials = material.FindAllMaterials();
        return View();
    }
 }

Что я делаю не так .... Когда я нажимаю на ссылку, я получаю The resource cannot be found. ошибку .. Любое предложение ...

Ответы [ 2 ]

0 голосов
/ 26 апреля 2010

Дамп вопроса -> убедитесь, что вы сохранили / скомпилировали. Что намекает на то, что вы этого не делали, так это то, что у вас есть два маршрута с одинаковым именем (по умолчанию). Компилятор должен выдать ошибку.

Во-вторых, попробуйте вручную перейти на этот ресурс. Т.е., зайдите http://localhost:/materials/index и посмотрите, работает ли это. Конечно, замените localhost тем, что является URL-адресом вашего сайта. Если это работает .. продолжайте.

В-третьих, наведите курсор мыши на привязку html (он же a a href) и посмотрите, что отображается в строке состояния браузера. В нем должен быть указан URL ресурса, на который этот якорь будет перенаправлять вас. Это говорит "http://localhost:/materials/index' ??

в основном, код выглядит нормально для HTML.ActionLink ... но есть несколько других возможных вещей, которые могли это испортить.

0 голосов
/ 26 апреля 2010

Что вы подразумеваете под "Но моя ссылка, кажется, не получает моего контролера материала"? Какую ссылку он генерирует?

Загрузите отладчик маршрутизации здесь: http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx

Зарегистрируйте его и посмотрите, какой маршрут он использует при вводе URL-адреса вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...