【问题标题】:Viewdata in mvc razor在 mvc razor 中查看数据
【发布时间】:2012-01-03 22:08:58
【问题描述】:

我正在使用 MVC 3.0(Razor 框架)进行项目。我正在尝试从控制器获取值以使用 Javascript 方法中的按钮单击上的 Viewdata 进行查看。它即将在 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代码

标签: asp.net-mvc asp.net-mvc-3 razor viewdata


【解决方案1】:

在这种情况下,您最好返回 JSON 结果。 ViewData 不好。不要使用它。在您的情况下,它不起作用,因为您需要定义将解释 ViewData 的此控制器操作的相应视图,并且它是您将在 AJAX 成功回调中获得的最终 HTML 片段。使用 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>

【讨论】:

  • 非常感谢,但除了 JSON 之外还有其他方法吗,因为我已经返回了与我的其他功能相关的字符串。请建议该怎么做
  • @user1004864,在这种情况下,JSON 似乎更适合。正如我在回答中已经说过的,您仍然可以使用 ViewData,但您必须定义一个相应的 Update.cshtml 视图。在此视图中,您将获得您在控制器中设置的 ViewData 的内容。在 AJAX 成功回调中,您将获得该视图的渲染结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-30
  • 2011-09-12
  • 1970-01-01
  • 2017-11-04
相关资源
最近更新 更多