我有一个视图,采用PaginatedList(如在Nerd Dinner样本中).该页面按预期工作.现在我添加了一个部分视图,它采用相同的PaginatedList,并在第一个视图中调用RnederPartial.ASP.NET抛出了一个我似乎无法解决的异常.
PaginatedList代码:
public class PaginatedList<T> : List<T>
{
public int PageIndex { get; private set; }
public int PageSize { get; private set; }
public int TotalCount { get; private set; }
public int TotalPages { get; private set; }
public PaginatedList(IQueryable<T> source, int pageIndex, int pageSize)
{
PageIndex = pageIndex;
PageSize = pageSize;
TotalCount = source.Count();
TotalPages = (int)Math.Ceiling(TotalCount / (double)PageSize);
this.AddRange(source.Skip(PageIndex * PageSize).Take(PageSize));
}
public bool HasPreviousPage
{
get
{
return (PageIndex > 0);
}
}
public …Run Code Online (Sandbox Code Playgroud) 有没有办法动态注入部分模板(并在Ruby和Javascript中以相同的方式工作)?基本上,我正在尝试在列表中呈现不同类型的对象.
我能想到的最好的是:
<div class="items">
{{#items}}
<div class="item">
{{#is_message}}
{{> message}}
{{/is_message}}
{{#is_picture}}
{{> picture}}
{{/is_picture}}
</div>
{{/items}}
</div>
Run Code Online (Sandbox Code Playgroud)
我对这种方法并不十分兴奋.有没有更好的办法?
另请注意,视图的不同类型的模型可以具有不相似的字段.我想我总是可以去最低的公分母并且数据哈希包含html,但是我宁愿使用胡子模板.
此代码是从本教程中的一些ASP.Net MVC 2代码转换而来的:
带有DateTime的MVC 2编辑器模板
它是存储为"EditorTemplates/DateTime.cshtml"的DateTime字段的自定义EditorTemplate.
@Model DateTime?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { @class = "datePicker" })
Run Code Online (Sandbox Code Playgroud)
但是,使用时出现以下错误@Html.EditorFor(model => model.NewAbsence.StartDate):
CS1973:'System.Web.Mvc.HtmlHelper'没有名为'TextBox'的适用方法,但似乎有一个名称的扩展方法.无法动态分派扩展方法.考虑转换动态参数或调用扩展方法而不使用扩展方法语法.
我在这里看过一些类似的帖子,提到了转换EditorFor方法的参数,但是我似乎无法在我的例子中使用它.
有人可以指出我需要在我的代码中更改.谢谢.
所以基本上我有一个局部视图,可以为我建立一个很好的表.我想每周通过电子邮件发送给我的用户.而不必再次基本上复制的模板,我想我的模型转发到控制器并接收相应产生HTML的String.
是否可以在Controller中执行此操作,我觉得它应该是一个非常简单的过程.
如何将参数传递给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模式对话框中.
大家好,我正在使用MVC 3(Razor).我有以下问题:
我有一些共同的内容被分隔成局部视图.但是,不要把它放在默认位置(views/shared或views/controller-name),我需要将它放在不同的位置(views/shared/new-folder或view/controller-name/new-folder).
我试过这个:@Html.Partial("views/shared/new-folder/partial-view-name")甚至@Html.Partial("views/shared/new-folder/partial-view-name.cshtml"),但似乎MVC3只将参数视为视图名称,它完全忽略了任何路径信息.
也许我做错了什么,有人可以帮我吗?:)非常感谢你!
我正在尝试使用自定义帮助器方法显示局部视图.唯一的问题是,我无法解决这个语法问题.这个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) 我的观点是这样的:
render :partial => 'shared/_address', :locals => {:address => order.bill_address}
Run Code Online (Sandbox Code Playgroud)
部分看起来像这样:
<b><%= address.name %></b><br/>
<%= raw address.address_lines('<br/>') %><br/>
<%= address.city_state_zip %><br/>
Run Code Online (Sandbox Code Playgroud)
在页面上呈现部分的多个实例.而不是让它显示address.name,我如何修改我的渲染:部分行,以便我传递自定义字符串,例如"未来的送货地址",而不是必须使用address.name?
所以代码如下所示:
<b>STRING GOES HERE</b><br/>
<%= raw address.address_lines('<br/>') %><br/>
<%= address.city_state_zip %><br/>
Run Code Online (Sandbox Code Playgroud) 我无法决定是否应该使用htmlHelper或部分视图来解决我的问题.
我想重用以下代码:
<div style="width: 500px; float: left;">
<div class="box effect2">
<span><a href="@Url.Action("someMethod", "somController")">
<img src="@Url.Content("~someurl)" /></a></span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
href和图像源将是参数.
最好的方法是什么?
我创建了一个ASP.NET MVC局部视图,我通过HTML.Action帮助器方法调用它:
@Html.Action("GetMyPartialView", "MyController", new { myParameter})
Run Code Online (Sandbox Code Playgroud)
局部视图包含一个需要调用JavaScript的控件(外部JavaScript文件中的JavaScript库).如何在部分视图中调用此JavaScript代码.
我尝试在局部视图中使用script元素:
<script>
MyJavaScriptFunction();
</script>
Run Code Online (Sandbox Code Playgroud)
这没用.可能当时没有加载外部JavaScript文件(例如jQuery).
在呈现局部视图时,建议使用JavaScript代码的方法是什么?
partial-views ×10
asp.net-mvc ×4
razor ×3
html-helper ×2
javascript ×2
c# ×1
ruby ×1
syntax ×1
templates ×1