ASP.NET MVC3, Razor - Использование ViewBag или URL-переменных в Javascript - PullRequest
2 голосов
/ 22 января 2012

У меня есть проект ASP.NET MVC3, который использует полосу вкладок на определенных страницах. Остановка табуляции построена в JavaScript. Когда пользователь выполняет действие, я хотел бы иметь возможность перенаправить его на нужную страницу с открытой вкладкой. Чтобы достичь этого, мне нужно либо передать переменную в URL-адресе и получить ее обработчик с помощью JavaScript, либо передать переменную обратно с помощью ViewBag или TempData и снова получить обработчик с помощью JavaScript.

Итак, мой вопрос: как я могу получить доступ к этим переменным с помощью JavaScript?

1 Ответ

2 голосов
/ 22 января 2012

Вы можете передать значение в качестве параметра строки запроса при перенаправлении, а в целевом действии просто определить модель представления:

public class MyViewModel
{
    public string MyValue { get; set; }
}

, а затем иметь привязку или действие контроллера, которое будет перенаправлять на целевое действиеи передайте myvalue в качестве параметра строки запроса:

@Html.ActionLink("go to foo", "foo", new { myvalue = "foo bar" })

, и при нажатии на ссылку пользователь перенаправляется на действие Foo, которое принимает модель представления в качестве аргумента, так что привязка происходит автоматически и передает это представлениесмоделируйте соответствующий вид:

public ActionResult Foo(MyViewModel model)
{
    return View(model);
}

, и в соответствующем представлении вы можете делать все, что захотите, с моделью представления:

@model MyViewModel
<script type="text/javascript">
    var myValue = @Html.Raw(Json.Encode(Model.MyValue));
    // TODO: do something with the value
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...