如何使用 jquery 将对象从 mvc 控制器操作传递到视图

本文关键字:操作 视图 控制器 mvc jquery 何使用 对象 | 更新日期: 2023-09-27 18:34:05

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

如何使用 jquery 将对象从 mvc 控制器操作传递到视图

你可以以 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);
   });
});

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

您可以使用 ViewBag: 在操作中: ViewBag.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"]" />