0

有人可以帮我吗我是 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 中公开图像和主题对象。谢谢

4

3 回答 3

3

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

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);
   });
});
于 2012-05-14T20:51:51.780 回答
1

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

你可以使用 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>
于 2012-05-15T05:25:03.853 回答
0

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

<input id="someID" type="hidden" value="@TempData["Theme"]" />
于 2012-05-14T20:51:05.690 回答