标签: partial-views

Html Helper,RenderPartial如何工作?如何实现可以从局部视图中引入内容的帮助程序?

当您使用Html.RenderPartial时,将获取您要呈现的视图的名称,并在该位置呈现它的内容.

我想实现类似的东西.我希望它获取您要呈现的视图的名称,以及一些其他变量,并在容器中呈现内容.

例如:

public static class WindowHelper
{
    public static string Window(this HtmlHelper helper, string name, string viewName)
    {
        var sb = new StringBuilder();

        sb.Append("<div id='" + name + "_Window' class='window'>");
        //Add the contents of the partial view to the string builder.
        sb.Append("</div>");

        return sb.ToString();
    }
}
Run Code Online (Sandbox Code Playgroud)

有人知道怎么做吗?

c# asp.net-mvc html-helper renderpartial partial-views

6
推荐指数
2
解决办法
5443
查看次数

$(document).ready()和部分视图加载

我正在使用Asp.net mvc和jquery开发一个应用程序.我想对不同视图中的html元素使用相同的命名约定(类和id).

在我想异步加载局部视图的情况下,主视图中的$(document).ready()代码片段失去了用处,因为jquery无法识别patial视图的html标记和css命名.我当然不想为每个视图编写相同的代码.有什么方法可以解决这个问题?

asp.net-mvc jquery partial-views

6
推荐指数
1
解决办法
7126
查看次数

ASP.NET MVC2 - 是否可以从局部视图访问父视图的模型数据?

在处理1 ---> 0 ... 1关系时,我试图为0 ... 1结束使用单独的局部视图.为了提高效率,我想使用RenderPartial()而不是RenderAction().

是否可以从该局部视图访问包含视图的模型数据,以便访问主对象的PK/ID?

这只是一个令人伤心的尝试,甚至不应该首先考虑到黑客攻击吗?

有没有人有一个更好的例子来说明如何使用MVC处理这个1 ---> 0 ... 1的关系?

asp.net-mvc partial-views asp.net-mvc-2

6
推荐指数
1
解决办法
4046
查看次数

在部分视图中传递参数 - MVC3/Razor

如何将参数传递给MVC3(razor)中的局部视图.我在我的MVC项目中用部分视图替换了常规的View页面.对于常规的View页面,我传递了类似的参数

   public ActionResult MeanQ(int id)
    {            
        Access access= db.Access.Find(id);
        return View(access);
    }
Run Code Online (Sandbox Code Playgroud)

现在,因为我将视图更改为部分视图,所以我改为使用以下代码:

  public ActionResult MeanQ(int id)
    {            
        Access access= db.Access.Find(id);
        return PartialView("_MeanQPartial");
    }
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何仍然传递参数'id'以使其像以前一样工作.请帮忙.它的价值,视图或部分视图,都由链接触发并显示在Jquery模式对话框中.

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

6
推荐指数
2
解决办法
1万
查看次数

Symfony包含部分来自自定义文件夹

表格示例:

<?php include_partial('job/list', array('jobs' => $jobs)) ?>
Run Code Online (Sandbox Code Playgroud)

我在模块文件夹模板中有模块作业和部分_list.php.是否可以在模板文件夹部分中创建并包含该文件夹中的所有部分?如果有可能怎么做呢?谢谢!

php symfony1 partial-views partial symfony-1.4

6
推荐指数
1
解决办法
5797
查看次数

语法问题 - Razor MVC4

我正在尝试使用自定义帮助器方法显示局部视图.唯一的问题是,我无法解决这个语法问题.这个cshtml文件的模型集是我定义为Operation的IEnumerable模型集合.我确信这是一个简单的解决方案.这是我所看到的一个例子:

我有这段代码:

    @using(Html.BeginForm()) {
       <div id="editor_rows">
          @foreach (var item in Model){
             Html.RenderPartial("OperationEditorRow", item);
          }
       </div>
    }
Run Code Online (Sandbox Code Playgroud)

这在运行时给出了以下错误:

    Unexpected "{" after "@" character. Once inside the body of a code block (@if {}, @{}, etc.) you do not need to use "@{" to switch to code.
Run Code Online (Sandbox Code Playgroud)

但是如果我删除foreach语句前面的@符号,则所有内容都被解释为纯文本.所以我尝试在Html前放置一个@,如下所示:

    @using(Html.BeginForm()) {
       <div id="editor_rows">
          @foreach (var item in Model){
             @Html.RenderPartial("OperationEditorRow", item);
          }
       </div>
    }
Run Code Online (Sandbox Code Playgroud)

返回时出现编译错误,指出:

    Cannot implicitly convert type void to object
Run Code Online (Sandbox Code Playgroud)

如果我从这里运行项目,我会收到一个运行时错误:

    The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments …
Run Code Online (Sandbox Code Playgroud)

syntax html-helper partial-views razor asp.net-mvc-4

6
推荐指数
1
解决办法
4555
查看次数

用AJAX加载的Javascript和MVC4部分视图

我有一个ASP.NET MVC 4视图,它<div>通过JQuery AJAX调用动态地将两个嵌套的部分加载到元素中.每个部分都有一大堆自己的Javascript.为了让它全部正常工作,我目前拥有success每个AJAX调用中的所有Javascript :

function LoadPartial(someImportantId) {
    $.ajax({
        url: '@Url.Action("LoadThePartial")' + '?id=' + someImportantId,
        type: 'POST',
        async: false,
        success: function (result) {
            $("#partialContainerDiv").html(result);
            //here there be great piles of javascript
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

由于这些部分中有两个,每个需要数百行Javascript,因此主视图文件变得难以管理.我很乐意把所有这些脚本代码放到一个单独的.js文件中,但我仍然对Javascript很新,我非常依赖Chrome的脚本调试工具,而且我很难搞清楚如何(以及如果)我可以加载此脚本文件.我试过了:

调试器中没有脚本

  • 添加脚本包括主视图.这不起作用.部分的Javascript都没有正确附加,这在同步级别上是有意义的.

东西不起作用

有没有办法我可以为AJAX加载的部分单独的Javascript文件,仍然能够调试客户端上的部分?更重要的是,我在哪里将所有这些Javascript用于AJAX加载的部分视图?

javascript debugging jquery partial-views asp.net-mvc-4

6
推荐指数
1
解决办法
7373
查看次数

ASP MVC3 - 使用局部视图将新的HTML元素附加到页面

我目前正在我的ASP MVC3视图上使用Ajax调用来向页面添加新的列表项.该视图进行Ajax调用,该调用调用控制器ViewResult操作,该操作返回局部视图.然后将Ajax设置为调用源自调用.append(html)<div>元素的方法.

问题是,不是附加新行,而是整个视图消失,只显示部分.

这是视图中的代码.此视图使用具有单独模型的列表对象的视图模型.代码的这一部分调用局部视图以显示列表对象中的每个项目.

@model Monet.ViewModel.BankListViewModel
@using (Html.BeginForm())
{
    <fieldset>
        <legend>Stat(s) Fixed</legend>
        <table>
        <th>State Code</th>
        <th>Agent ID</th>
        <th></th>
            <div class="fixedRows">
                @foreach(var item in Model.Fixed)
                {
                    if (!String.IsNullOrWhiteSpace(item.AgentId))
                    {

                            @Html.Partial("FixedPartialView", item) 

                    }      
                }
            </div>
        </table>
        <br />
        @Html.ActionLink("Add another", "BlankFixedRow", null, new { id = "addFixed"})
    </fieldset>
}
Run Code Online (Sandbox Code Playgroud)

这是addFixedAjax调用

$("#addFixed").click(function () {
    $.ajax({
        url: this.href,
        cache: false,
        success: function (html) { $("#fixedRows").append(html); }
    });
    return false;
});
Run Code Online (Sandbox Code Playgroud)

这是ViewResultAjax调用的控制器操作

    public ViewResult BlankFixedRow() …
Run Code Online (Sandbox Code Playgroud)

ajax jquery partial-views asp.net-mvc-3 asp.net-mvc-2

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

ASP.NET MVC 4默认_LoginPartial模板注销无效

我一直在摆弄默认MVC 4模板的_Layout和_PartialLayouts,突然之间'_PartialLogin'文档中的'Logout'功能已经停止工作.为了给你提供更多信息,从_NavBar.cshtml调用_LoginPartial.cshtml,然后从_Layout.cshtml调用

_LoginPartial.cshtml的代码是:

@if (Request.IsAuthenticated) {
<text>
    <p>Hello, @Html.ActionLink(User.Identity.Name, "Manage", "Account", routeValues: null, htmlAttributes: new { @class = "username", title = "Manage" })!
    @using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm" })) {
        @Html.AntiForgeryToken()
        <a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>
    }</p>
</text>
} 
Run Code Online (Sandbox Code Playgroud)

_NavBar.cshtml中的代码是:

<form class ="navbar-form navbar-right" method="post" action="/account/login">
    <div class ="form-group">
        @Html.Partial("_LoginPartial")
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

_Layout.cshtml中的代码是:

<body>
    @Html.Partial("_Navbar")
    @RenderSection("featured", required: false)
    @RenderBody()
    <div class="container">
Run Code Online (Sandbox Code Playgroud)

我知道问题可能是javascript已经无意中被无意识地禁用了.我可能错过了一些脚本标签吗?或者它是上一课中我称之为_PartialLogin的东西?

javascript c# partial-views asp.net-mvc-partialview asp.net-mvc-4

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

从ASP.NET MVC中的布局调用操作方法

我有一个布局和一个局部视图,它们在共享文件夹中.部分视图显示非静态的顶级菜单项.所以我需要调用一个action方法来从数据库中获取菜单项.为此,我创建了一个控制器并在其中添加了一个动作方法.

当我尝试在Web浏览器中浏览页面时,发生此错误:

未找到路径'/'的控制器或未实现IController.

注意: 我也尝试了Html.RenderAction,Html.Partial方法......我尝试创建另一个视图文件夹,并创建一个新的局部视图和以"文件夹名称+控制器"后缀命名的新控制器.

布局:

<!DOCTYPE html>
<html>
<head>
    <title>@ViewBag.Title</title>
</head>
<body>
    <div id="header">
        @Html.Action("~/Views/Shared/_TopMenu.cshtml", "LayoutController", new {area =""}); //Here is the problem.

    </div>
   <div>
        @RenderBody();
   </div>

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

_TopMenu.cshtml:

@model IList<string>

@foreach (string item in Model)
{
    <span>item</span>
}
Run Code Online (Sandbox Code Playgroud)

LayoutController(在Controllers文件夹中):

 public class LayoutController : Controller
    {
        //
        // GET: /Shared/
        public ActionResult Index()
        {
            return View();
        }

        [ChildActionOnly]
        [ActionName("_TopMenu")]
        public ActionResult TopMenu()
        {
           IList<string> menuModel = GetFromDb();
           return PartialView("_TopMenu", menuModel);
        }    
    }
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc partial-views asp.net-mvc-4

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