Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Просмотр данных в бритве mvc

Автор вопроса: user1004864Ответов: 1

Я работаю над проектом, используя MVC 3.0 (Razor framework). Я пытаюсь получить значения от контроллера для просмотра с помощью Viewdata при нажатии кнопки в методе Javascript. Он поступает в document.ready, но не при нажатии кнопки. Поэтому, пожалуйста, помогите получить значение viewdata при нажатии кнопки.

Ниже приведен мой код

     [HttpPost]
            public ActionResult Update()
            {
                ViewData["myInfo"] = "my info";
                return View();
             }

И мой код JAvascript:

    <script type="text/javascript">
        $(document).ready(function () {
            $("#btn").click(function () {

                $.post("/ImportCSV/Update", {},
               function ()
                {
                var g = '@ViewData["myInfo"]';

                });
                });
                });
    </script>

Я хочу показать значение Viewdata при нажатии кнопки

  • непонятна ваша постановка вопроса. Вы хотите сказать, что не можете передать данные из метода действия, который вызывается кодом javascript??... Также опубликуйте соответствующий код javascript Pankaj Upadhyay 03.01.2012

razorviewdata

Ответы

Ответ 1 · рейтинг 2 · Darin Dimitrov

В этом случае вам лучше вернуть результат JSON. ViewData плохо. Не используйте его. В вашем случае это не работает, потому что вам нужно определить соответствующее представление этого действия контроллера, которое будет интерпретировать ViewData, и это последний фрагмент HTML, который вы получите в обратном вызове успеха AJAX. Используя JSON, вы можете напрямую отправить некоторые данные вызывающему скрипту:

[HttpPost]
public ActionResult Update()
{
    return Json(new { myInfo = "my info" });
}

а затем отправьте запрос AJAX этому действию контроллера:

<script type="text/javascript">
    $(document).ready(function () {
        $("#btn").click(function () {
            var url = @Url.Action("Update", "ImportCSV");
            $.post(url, {}, function (result) {
                var myInfo = result.myInfo;
                alert(myInfo);
            });
        });
    });
</script>

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы