Viewdata в бритве mvc - PullRequest
       28

Viewdata в бритве mvc

0 голосов
/ 03 января 2012

Я работаю над проектом, используя 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 при нажатии кнопки

1 Ответ

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

В этом случае лучше вернуть результат JSON. ViewData это плохо. Не используйте это. В вашем случае это не работает, потому что вам нужно определить соответствующее представление этого действия контроллера, которое будет интерпретировать ViewData, и это последний фрагмент HTML, который вы получите в обратном вызове AJAX success. Используя 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>
...