![](/img/trans.png)
[英]How to pass custom model object from razor view to controller action in ASP.NET MVC 5
[英]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.