繁体   English   中英

如何使用jQuery将对象从MVC控制器动作传递到视图

[英]How to pass an object from a mvc controller action to a view using jquery

有人可以帮帮我,我是jQuery的新手,我想知道如何从控制器动作MVC中传递对象

public ActionResult UserGroupSetting()
{
    UserGroupSetting setting = //some code to retrieve the settings
    ViewData["Theme"] = setting.Theme;
    ViewData["Image"] = setting.LogoImage;
    returnView(setting);
}

我想要它在jQuery函数中获取主题和徽标图像,我将使用它们来更新样式表中的类。主题对象目前仅包含十六进制形式的颜色。

如果有人可以帮助我调用jquery函数,以及如何在jquery中公开图像和主题对象。

您可以返回jSon格式的数据,并让jquery使用getJSON方法调用您的action方法

public ActionResult UserGroupSetting()
{
   var result=new { Theme="YourTheme", Logo="YourLogoURL"};
   return Json(result, JsonRequestBehavior.AllowGet);
}

在您的页面中,通过javascript调用它

$(function(){
   $.getJSON('YourController/UserGroupSetting', function(data) {
      alert(data.Theme);
      alert(data.Logo);
   });
});

如果我是你,我会这样做:

您可以使用ViewBag:在操作中:ViewBag.Setting = setting;

  UserGroupSetting setting = //some code to retrieve the settings
  ViewBag.Theme  = setting.Theme;
  ViewData.Image = setting.LogoImage;
  returnView(setting);

然后在剃刀中:

 @{
    var setting = (UserGroupSetting)ViewBag.Setting;
  }

将其输出到javascript标签:

  <script type="text/javascript">
        var setting = new setting{
                 Theme = @setting.Theme,
               Image = @setting.Image
        }
  </script>

这可能不是最佳解决方案,但是我过去使用的一个选项是在视图中创建隐藏的input ,并在jQuery代码中访问该input的值。 这将是您认为的代码示例:

<input id="someID" type="hidden" value="@TempData["Theme"]" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM