2014-02-15 5 views
0

Перенастройка мой мозг от WebForms в MVC, я хочу:asp.net MVC открыть еще один вид в JavaScript

1) нажмите на кнопку, которая будет 2) выполнить некоторые JavaScript, который будет 3) открыт в новом окне (или вкладке, в зависимости от того что браузер установлен на), который будет показывать существующий вид из того же раствора, и 4) имеют вид, что выполнить некоторые нагрузки данных

Я застрял на 3 и 4

3):

function foo(){ 
var wrkURL = globalURLVarFromViewOneThatPointsToViewTwo 
window.open(wrkURL,"_blank") 
} 

Как указать URL другого существующего вида (ViewTwo) в том же решении? Есть ли помощник, который я могу вызвать в ViewOne, который создаст этот URL-адрес в вызывающем представлении и загрузит в globalURLVarFromViewOneThatPointsToViewTwo? Или, если мне нужно указать URL-адрес для ViewTwo, как выглядит этот синтаксис?

4) Как мне заставить ViewTwo автоматически выполнять некоторые операции с данными (например, найти данные для FlexGrid) до или сразу после отображения? Я знаю, как сделать вызов Ajax контроллеру/действию на document.ready; есть ли другой способ вызова контроллера/действия и загрузки view.bag, как показано на экране?

ответ

2

Для построения URL-адрес, смотрите на помощнике URL:

@Url.Action("ActionName", "Controller", new { 
    someVariable= someData 
}) 

Что касается # 4, обратите внимание, что, когда я построения URL, я строю его с параметрами маршрута. Эти параметры будут переданы действию вашего контроллера, и вы сможете делать то, что вам нравится (просто убедитесь, что маршрутизация настроена так, что вы получите соответствующее соответствие для вашего предполагаемого действия).

+0

Спасибо за ввод. Вернемся к решению №4, я не уверен, что это касается необходимости «выполнять загрузку данных при просмотре». Есть ли синтаксис для получения представления для автоматического выполнения действия контроллера при первом загрузке? Или это нужно сделать с вызывающего контроллера, до того, как загрузится представление? – wayfarer

+0

Doh! Понимаю. Я могу вызвать любой контроллер, который я хочу от JS. Это может привести к операциям «загрузки данных», которые мне нужны. Хорошо, я думаю, это сделано. – wayfarer

2

Фактически action methods отвечает на URL-адреса. Поэтому вам нужно создать URL-адрес для метода действия. Убедитесь, что вы вернули это конкретное представление из действия.

var wrkURL = '@Url.Action("SomeAction", "SomeController")'; 
+0

Doh! Это было просто; Я не понял, что это будет работать с window.open. Благодарю. – wayfarer

Смежные вопросы