相关疑难解决方法(0)

从部分填充剃刀部分

我尝试这样做的主要动机是获取Javascript,只需要页面底部的部分Javascript和其他Javascript,而不是在部分呈现的页面中间.

这是我正在尝试做的简化示例:

这是在正文之前的Scripts部分的布局.

<!DOCTYPE html>
<html>
<head>
    <title>@ViewBag.Title</title>
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />    
</head>

<body>
    @RenderBody()
    <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
    @RenderSection("Scripts", false)
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是使用此布局的示例视图.

<h2>This is the view</h2>

@{Html.RenderPartial("_Partial");}

@section Scripts {
<script type="text/javascript">
        alert("I'm a view.");
</script>
}
Run Code Online (Sandbox Code Playgroud)

这是从视图中呈现的部分内容.

<p>This is the partial.</p>

@* this never makes it into the rendered page *@
@section Scripts {
<script type="text/javascript">
    alert("I'm a partial."); 
</script>
}
Run Code Online (Sandbox Code Playgroud)

在此示例中,视图中指定的标记放在节中,但不包含部分标记.是否可以使用Razor从局部视图填充部分?如果没有,还有哪些其他方法可以获取Javascript,只需要页面底部的部分内容,而不是全局包含它?

javascript razor asp.net-mvc-3

99
推荐指数
6
解决办法
4万
查看次数

如何在MVC4的局部视图中添加脚本?

这是我在局部视图中的代码

@model Contoso.MvcApplication.Models.Exercises.AbsoluteArithmetic

@using(Html.BeginForm())
{
<div>
    <span style="width: 110px; float:left; text-align:center; font-size:2.5em;">@Model.Number1</span>
    <span style="width: 110px; float:left; text-align:center; font-size:2.5em;">+</span>
    <span style="width: 110px; float:left; text-align:center; font-size:2.5em;">@Model.Number2</span>
    <span style="width: 110px; float:left; text-align:center; font-size:2.5em;">=</span>
    <span>
            @Html.EditorFor(model => model.Result)
            @Html.ValidationMessageFor(model => model.Result)
    </span>
</div>
}

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}
Run Code Online (Sandbox Code Playgroud)

请注意我的代码底部,我有一个@section,我意识到如果我在那里设置一个断点,它就不会运行.如果我在_Layout.cshtml中移动该行,则效果很好,但这不是主意.

如何在部分剃刀视图中告诉MVC4我想添加该库?

asp.net asp.net-mvc razor asp.net-mvc-4 razor-2

38
推荐指数
5
解决办法
9万
查看次数

如何在MVC3中的局部视图中渲染一个截面?

在MVC3项目中,我有一个带有此代码的"_Layout.vbhtml"文件

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    ...
    <script src="@Url.Content("~/Scripts/jquery-1.8.2.min.js")"></script>
    @RenderSection("Scripts", false)
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

然后,我在共享文件夹中有一个部分视图"ValidationScripts.vbhtml"

@Section Scripts
    <script src="@Url.Content("~/Scripts/jquery.validate.min.js")"></script>
    <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"></script>
    <script src="@Url.Content("~/Scripts/jquery.validate.fix.js")"></script>  
    <script src="@Url.Content("~/Scripts/localization/messages_de.js")"></script>      
End Section
Run Code Online (Sandbox Code Playgroud)

如果我从这样的视图中调用部分视图...

@ModelType MvcExample.MyModel
@Code
    ViewData("Title") = "Test"
End Code

@Html.Partial("ValidationScripts")

<h2>Just a Test</h2>
...
Run Code Online (Sandbox Code Playgroud)

"脚本"部分未在页面上呈现,输出HTML为

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    ...
    <script src="@Url.Content("~/Scripts/jquery-1.8.2.min.js")"></script>

  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

如何在局部视图中渲染剖面?

asp.net-mvc asp.net-mvc-partialview asp.net-mvc-views razor asp.net-mvc-3

25
推荐指数
2
解决办法
5万
查看次数

MVC3布局页面,视图,RenderPartial和将脚本文件放入标题(从局部视图)

所以我有一个布局页面

<head>
    @RenderSection("HeaderLast", required: false)
</head>
Run Code Online (Sandbox Code Playgroud)

一个看法

@section HeaderLast
{
    <script src="@Url.Content("~/Scripts/knockout-1.2.0.js")"
                            type="text/javascript"></script>
}

<div id="profile-tab">
        @{ Html.RenderPartial("_userProfile"); }
</div>
Run Code Online (Sandbox Code Playgroud)

和部分观点

@section HeaderLast
{
    <script type="text/javascript">
        alert('test');
    </script>
}

<div......
Run Code Online (Sandbox Code Playgroud)

我认为这不可能那么简单.有没有一种正确的方法来开箱即用,或者这总是需要某种调解器并传递ViewData周围的东西来手动使内容冒泡到布局页面?

赏金开始了:赏金将奖励为此短期提供的最佳解决方案.如果没有提供答案,我会将其授予@SLaks最初回答此问题.

c# partial-views razor layout-page asp.net-mvc-3

13
推荐指数
2
解决办法
9935
查看次数

尝试从部分视图中将JS和CSS添加到MVC 3 Razor网站中的布局文件中

我目前正在使用类似于以下代码的方法将脚本和css文件添加到布局文件的头部.

public static class HtmlHelperExtensions
{
    public static MyCompanyHtmlHelpers MyCompany(this HtmlHelper htmlHelper)
    {
        return MyCompanyHtmlHelpers.GetInstance(htmlHelper);
    }    
}

public class MyCompanyHtmlHelpers
{
    private static MyCompanyHtmlHelpers _instance;

    public static MyCompanyHtmlHelpers GetInstance(HtmlHelper htmlHelper)
    {
        if (_instance == null)
            _instance = new MyCompanyHtmlHelpers();

        _instance.SetHtmlHelper(htmlHelper);

        return _instance;
    }

    private HtmlHelper _htmlHelper;

    public ItemRegistrar Styles { get; private set; }
    public ItemRegistrar Scripts { get; private set; }

    public MyCompanyHtmlHelpers()
    {
        Styles = new ItemRegistrar(ItemRegistrarFromatters.StyleFormat);
        Scripts = new ItemRegistrar(ItemRegistrarFromatters.ScriptFormat);
    }

    private void SetHtmlHelper(HtmlHelper htmlHelper)
    {
        _htmlHelper …
Run Code Online (Sandbox Code Playgroud)

c# asp.net razor asp.net-mvc-3

7
推荐指数
1
解决办法
8786
查看次数