当您使用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)
有人知道怎么做吗?
我正在使用Asp.net mvc和jquery开发一个应用程序.我想对不同视图中的html元素使用相同的命名约定(类和id).
在我想异步加载局部视图的情况下,主视图中的$(document).ready()代码片段失去了用处,因为jquery无法识别patial视图的html标记和css命名.我当然不想为每个视图编写相同的代码.有什么方法可以解决这个问题?
在处理1 ---> 0 ... 1关系时,我试图为0 ... 1结束使用单独的局部视图.为了提高效率,我想使用RenderPartial()而不是RenderAction().
是否可以从该局部视图访问包含视图的模型数据,以便访问主对象的PK/ID?
这只是一个令人伤心的尝试,甚至不应该首先考虑到黑客攻击吗?
有没有人有一个更好的例子来说明如何使用MVC处理这个1 ---> 0 ... 1的关系?
如何将参数传递给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模式对话框中.
表格示例:
<?php include_partial('job/list', array('jobs' => $jobs)) ?>
Run Code Online (Sandbox Code Playgroud)
我在模块文件夹模板中有模块作业和部分_list.php.是否可以在模板文件夹部分中创建并包含该文件夹中的所有部分?如果有可能怎么做呢?谢谢!
我正在尝试使用自定义帮助器方法显示局部视图.唯一的问题是,我无法解决这个语法问题.这个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) 我有一个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的脚本调试工具,而且我很难搞清楚如何(以及如果)我可以加载此脚本文件.我试过了:


有没有办法我可以为AJAX加载的部分单独的Javascript文件,仍然能够调试客户端上的部分?更重要的是,我在哪里将所有这些Javascript用于AJAX加载的部分视图?
我目前正在我的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) 我一直在摆弄默认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
我有一个布局和一个局部视图,它们在共享文件夹中.部分视图显示非静态的顶级菜单项.所以我需要调用一个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) partial-views ×10
asp.net-mvc ×5
c# ×3
jquery ×3
html-helper ×2
javascript ×2
razor ×2
.net ×1
ajax ×1
debugging ×1
partial ×1
php ×1
symfony-1.4 ×1
symfony1 ×1
syntax ×1