2015-03-09 1 views
0

Новое в Razor и asp.net MVC, поэтому, пожалуйста, успокойтесь. Я редактирую веб-сайт, созданный кем-то другим.Как открыть MVC-представление у контроллера, как бы я открыл его из кода Razor?

Мне нужно открыть представление с контроллера. Это представление является домашней страницей моего веб-сайта, поэтому для нее нет модели; на странице нет информации. Вид изначально открывается из меню, где код Razor выглядит следующим образом:

@Html.ActionLink(
     "Application Summary" 
    , "MerchantApplicationSummary" 
    , "Admin" 
    , new { session = 1 } 
    , new AjaxOptions { HttpMethod = "Get" } 
) 

Как открыть тот же вид, MerchantApplicationSummary, от контроллера .cs?

Я Открываюсь вид из контроллера, как это:

return View("Application", obj_App); 

, но когда я пытаюсь что я получаю сообщение об ошибке:

Модели элемент передается в словарь в типа «CarmelFinancialWeb.Models.ModelApplication», но для этого словаря требуется элемент модели типа «PagedList.IPagedList`1 [CarmelFinancialWeb.Models.ModelMerchantSummary]».

Может ли кто-нибудь показать мне, как открыть представление с контроллера? Спасибо!

+1

Ваше представление объявляет 'PagedList.IPagedList1 [CarmelFinancialWeb.Models.ModelMerchantSummary]' как его модель. Но вы пытаетесь использовать представление с моделью типа 'CarmelFinancialWeb.Models.ModelApplication'. Вам понадобится новое представление для соответствия вашей модели или изменение модели ('obj_App'), которую вы передадите. – Jasen

+0

Покажите нам код представления. Эта ошибка в основном говорит, что у вас есть объявление @model вверх, даже если вы говорите, что нет. –

ответ

1

Предполагая, что по этой ссылке:

@Html.ActionLink(
     "Application Summary" 
    , "MerchantApplicationSummary" 
    , "Admin" 
    , new { session = 1 } 
    , new AjaxOptions { HttpMethod = "Get" } 
) 

"Резюме Применение": это текст ссылки
"MerchantApplicationSummary": это действие
"Admin": это контроллер
новый {сессия = 1} : это аргументы маршрутные

Используйте кнопки RedirectToAction метод вместо View, как это

var routeData = new RouteData(); 
routeData.Values.Add("session", "1"); 

return RedirectToAction("MerchantApplicationSummary", "Admin", routeData); 

RouteData должно быть найдено в пространстве имен System.Web.Routing в System.Web.dll.

+0

Спасибо tlaramie. Похоже, это может сработать, но я получаю сообщение о том, что RouteData не определено. Есть ли библиотека, кроме system.web.mvc Мне нужно включить? – boilers222

+0

Я отредактировал ответ выше. Но вы можете использовать [RouteValueDictionary] (https://msdn.microsoft.com/en-us/library/dd505283 (v = vs.100) .aspx) вместо – tlaramie

+0

Спасибо. Мне просто пришлось добавить System.Web.Routing, и это сработало. Еще раз спасибо за вашу помощь tlaramie! – boilers222