asp.net – MVC4上的_layout.cshtml的@model?

我想知道是否有办法为_layout.cshtml文件指定一个模型,我已经看到很多帖子与人们回答“替代”解决方案的基本相同的问题,不是说它不可能也不显示我们究竟能够实现这一点

有一些webforms的经验,我一直试图迁移到MVC,经常发现自己有这样的问题,我发现这个网站:http://blog.bitdiff.com/2012/05/sharing-common-view-model-data-in.html
这部分解决了我的问题,但即使他们没有用_model绑定他们的_layout.cshtml,据我所知,如果我想访问SharedContext,我必须在每个视图上指定一个模型,如果我是的话请更正错误

我想要做的是在_l​​ayout.cshtml上声明一个“@model Namespace.MyModel”,这样它就可以自己检索它的信息,而不必为从LayoutModel继承的每个视图实现一个模型.

*我希望我很清楚,基本上,我想知道如何在_layout.cshtml上声明@model标签,以便它可以访问自己的模型

我之前联系过的解决方案(即使它与我的问题无关)我必须这样做:
@(((BaseController)ViewContext.Controller).Context.Property)获取共享信息,如果我可以简单地声明(并使用)@model,我可以通过做类似的事情来完成同样的事情:@Model.属性*

你可以看到,我正在努力将我已经知道的任何东西从webforms迁移到MVC,这对我来说很难,因为我必须采用与我习惯完全不同的某些做法

提前致谢

解决方法

即使您已经接受了答案,但根据您的说法,您只需要提取图像URL,您应该使用JQuery,而不是模型.

此代码未经测试,为此道歉.如果我输入错误,请随时指出.包含背景图像的HTML元素具有id =“url”属性,因此选择器可以工作.

调节器

[HttpGet]
public string GetSessionUrl()
{
    //logic to detmine url
    return url;
}

JQuery的

$(document).ready(function () {
    var $url = $('#url');
    var options = {
        url: "/Home/GetSessionUrl",type: "get",async:false
    };

    $.ajax(options).done(function (data) {
        $url.attr('src',data);
    });
});

相关文章

判断URL文件是不是在于在。private static bool UrlIsExist(...
由于在.net中,Request时出现有HTML或Javascript等字符串时,...
public static bool ProcessIdCard(this string idCard, out...
protected void Page_Load(object sender, EventArgs e){ Sc...