2012-05-06 4 views
0

Я создал образец MVC application, используя следующий шаблон.ASP.Net MVC Controller and View взаимодействие

ASP.NET MVC2 Empty Web Application

Затем добавили Controller с именем First и справа нажал ActionResult добавить View.

Я набрал http://localhost:49565/First в своем браузере.

Запрос

Как контроллер внутренне узнавая, что конкретная страница будет отображаться, когда мы будем вводить http://localhost:49565/First?

Кроме того, если я добавлю несколько просмотров для Controller. Как система решит, какой из них будет отображаться в Приоритете?

+1

Добро пожаловать в stackoverflow. Ваш вопрос о MVC находится на очень, очень элементарных элементах структуры. Я бы посоветовал вам взглянуть на одно из многих учебников для начинающих в Интернете, прежде чем отправлять вопросы здесь. Например: http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/cs/intro-to-aspnet-mvc-3 – Faust

+0

Добро пожаловать на мой первый вопрос в SO. Это очень специфический вопрос после чтения руководств MVC. Ты знаешь ответ? – Nilish

ответ

1

Контроллер вызывается фреймворком MVC, который использует маршруты, определенные в Global.asax.cs, чтобы определить, какой контроллер и действие вызывать. Существует маршрут по умолчанию, который выглядит следующим образом:

routes.MapRoute(
    "Default", // Route name 
    "{controller}/{action}/{id}", // URL with parameters 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
); 

Когда приложение получает запрос, будет пытаться разобрать URL в формат маршрутов. Если запрос сделан на http://localhost:49565/, он будет использовать значения по умолчанию, которые идут на действие Index в контроллере с именем HomeController. Когда вы создали новый контроллер, FirstController и позвоните по номеру http://localhost:49565/First, он использует FirstController вместо HomeController, так как он был предоставлен (но все равно для действия Index).

Кроме того, когда действие вызывается и явно не определено явно, он будет искать представление с именем так же, как вызванное действие. В вашем случае это будет ~/Views/First/Index.aspx.

EDIT

Если вы хотите использовать другой вид вы можете указать его в обратном заявлении

return View("OtherView"); 

и он будет использовать вместо ~/Views/First/OtherView.aspx.

+0

У меня есть два вида '1. Index.aspx и View1.aspx' Когда я ввожу 'http: // localhost: 49565/First' в свой браузер, как я могу вызвать' View1.aspx'. Сейчас он всегда показывает страницу «Index.aspx». – Nilish

+0

Спасибо, это помогло. Я не мог выдвинуть свою кандидатуру из-за меньшего количества репутаций. :) – Nilish

0

Посмотрите this постов в блоге дать и представление о том, как это делается