我正在尝试在acsx文件中使用Html.RenderPartial,我收到一个错误:
编译器错误消息:CS1973:'System.Web.Mvc.HtmlHelper'没有名为'RenderPartial'的适用方法,但似乎有一个名称的扩展方法.无法动态分派扩展方法.考虑转换动态参数或调用扩展方法而不使用扩展方法语法
<a href="/projects/<%=project.Id %>">
<% Html.Label("fdf"); %>
<% Html.RenderPartial("ProjectName", Model.Id); %></a></li>
<%} %>
Run Code Online (Sandbox Code Playgroud)
但是我已经导入了必要的命名空间,所以它不会出错
<% Html.Label("fdf"); %>
Run Code Online (Sandbox Code Playgroud)
有什么方法可以在ascx文件中使用Html.RenderPartial吗?
我试着调用这个方法:
RenderPartialExtensions.RenderPartial Method (HtmlHelper, String, Object, ViewDataDictionary)
Run Code Online (Sandbox Code Playgroud)
http://msdn.microsoft.com/en-us/library/dd470561.aspx
但我没有看到任何方法在表达式中构造ViewDataDictionary,如:
<% Html.RenderPartial("BlogPost", Post, new { ForPrinting = True }) %>
Run Code Online (Sandbox Code Playgroud)
任何想法如何做到这一点?
我刚刚将我的Preview 5应用程序升级到Beta 1,我几乎在那里尝试渲染控件时出现这个错误:
'System.Web.Mvc.HtmlHelper'不包含'RenderPartial'的定义,也没有扩展方法'RenderPartial'接受类型为'System.Web.Mvc.HtmlHelper'的第一个参数'(你是否缺少using指令)或汇编参考?)
我的标记(在.aspx查看内容页面中)是:
<% Html.RenderPartial("Controls/UserForm", ViewData); %>
Run Code Online (Sandbox Code Playgroud)
我尝试过使用Microsoft.Web.Mvc但无济于事.有谁知道Html.RenderPartial去了哪里,或者我可以使用哪种替代方案?
我在将部分参数传递给部分时遇到问题.无论我尝试过什么,当渲染部分时,params都不会通过.
我使用的是jquery选项卡式布局,每个选项卡都显示特定状态的工作订单,并且还基于一系列日期.
我正在使用params:sort_filter和:status_filter来完成此任务.
我的原始代码在这里,但是我想更改它以在link_to中呈现部分而不是在此处列出的方式:
<ul>
<li><%= link_to "Active", work_orders_path(params.merge({:status_filter => "A", :sort_filter => params[:sort_filter]})) %></li>
<li><%= link_to "On Hold", work_orders_path(params.merge({:status_filter => "H", :sort_filter => params[:sort_filter]})) %></li>
<li><%= link_to "Completed", work_orders_path(params.merge({:status_filter => "C", :sort_filter => params[:sort_filter]})) %></li>
<li><%= link_to "Billed", work_orders_path(params.merge({:status_filter => "B", :sort_filter => params[:sort_filter]})) %></li>
<li><%= link_to "All", work_orders_path(params.merge({:status_filter => "E", :sort_filter => params[:sort_filter]})) %></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
因此,我不想链接到我的work_orders_path中的索引,而是链接到一个名为viewall的部分.像这样:
<%= link_to render (:partial => 'viewall', :status_filter => "E", :sort_filter => params[:sort_filter]) %>
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我需要能够使用partial传递合并的参数.我已经查看了所有的文档,并且整天用手指搜索了我的手指,以获得答案,但仍然没有提出任何问题.任何帮助,将不胜感激.
我一直在玩ASP.NET MVC并且有一个问题.或者也许我担心这样做是错误的.只是在一个跛足的地方工作,伸展我的翅膀.对不起,这个问题根本不简洁.
好的,这是场景.当用户访问home/index时,该页面应显示产品列表和文章列表.文件布局是这样的(DAL是我的数据访问层):
Controllers
Home
Index
Views
Home
Index inherits from ViewPage
Product
List inherits from ViewUserControl<IEnumerable<DAL.Product>>
Single inherits from ViewUserControl<DAL.Product>
Article
List inherits from ViewUserControl<IEnumerable<DAL.Article>>
Single inherits from ViewUserControl<DAL.Article>
Controllers.HomeController.Index produces a View whose ViewData contains two entries, a IEnumerable<DAL.Product> and a IEnumerable<DAL.Article>.
View.Home.Index will use those view entries to call:
Html.RenderPartial("~/Views/Product/List.ascx", ViewData["ProductList"])
and Html.RenderPartial("~/Views/Article/List.ascx", ViewData["ArticleList"])
View.Product.List will call
foreach(Product product in View.Model)
Html.RenderPartial("Single", product);
View.Article.List does something similar to View.Product.List
Run Code Online (Sandbox Code Playgroud)
然而,这种方法失败了 这种方法对我来说很有意义,但也许对这些MVC平台有更多经验的人会认识到更好的方法.
以上内容在View.Product.List中产生错误.打电话Html.RenderPartial("Single",...)抱怨没有找到"单一"视图.错误表明:
The partial view …
我正在创建一个使用ajaxRequest的网站,当我点击一个链接时,它将使用ajaxRequest加载.当我加载例如user/login UserController actionLogin时,我使用processOUtput将视图renderPartial设置为true,因此将生成该视图中所需的js,但是如果我在该视图中有clientScriptRegister,则如何避免生成scriptRegistered两次或多个取决于ajaxRequest?我试图Yii::app()->clientScript->isSCriptRegistered('scriptId')检查脚本是否已经注册,但似乎如果你使用了ajaxRequest,结果总是为false,因为它只在渲染完成后才为真.
控制器代码
if (Yii::app()->request->isAjaxRequest)
{
$this->renderPartial('view',array('model'=>$model),false,true);
}
Run Code Online (Sandbox Code Playgroud)
查看代码
if (!Yii::app()->clientScript->isScriptregistered("view-script"))
Yii::app()->clientScript->registerScript("view-script","
$('.link').live('click',function(){
alert('test');
})
");
Run Code Online (Sandbox Code Playgroud)
如果我是第一次请求控制器,它可以正常工作(警报1次)但如果我再次请求同一个控制器而不刷新我的页面并且只使用ajaxRequest,如果你单击它,警报将输出两次(因为它保持在你已经注册一次的情况下生成事件)
这是相同的,如果你有CActiveForm使用jQuery功能的观点.该corescript yiiactiveform将被调用每次你的RenderPartial内.
我已经看到了几个问题,但一直没能解决它......
我试图在渲染部分时传递参数(类似于domainname.com/memory_books/new?fbookupload=yes)
现在,我使用这一行:
<%= render :partial => '/memory_books/new', :fbookupload => "yes" %>
Run Code Online (Sandbox Code Playgroud)
在部分,我试图通过使用以下方式获取fbookupload的内容:
<%= fbookupload %>
Run Code Online (Sandbox Code Playgroud)
它给出了"未定义的局部变量"错误和
<%= params.inspect %>
Run Code Online (Sandbox Code Playgroud)
它没有显示fbookupload作为参数.
如何沿参数传递部分传递:fbookupload?
谢谢.
更新:
它是否与我在渲染中渲染它的事实有关?
即具有的页面(/ fbookphotos/show)
<%= render :partial => '/memory_books/new', :fbookupload => "yes" %>
Run Code Online (Sandbox Code Playgroud)
由(posts/show)通过另一个页面呈现:
<%= render :partial => '/fbookphotos/show' %>
Run Code Online (Sandbox Code Playgroud)
所以我在渲染中渲染它.
parameters renderpartial ruby-on-rails partial ruby-on-rails-3
ASP.NET MVC中的'RenderPartial()'方法提供了非常低级别的功能.它没有提供,也没有尝试提供真正的"子控制器"模型*.
我通过'RenderPartial()'渲染了越来越多的控件.它们分为三大类:
1)控件是使用该页面模型的特定页面的直接后代
2)控件是特定页面的直接后代,该页面使用该页面的模型以及某种类型的 附加键.想想'DataRepeater'的实现.
3)代表它们出现的页面的不相关功能的控件.这可以是横幅旋转器,反馈表,商店定位器,邮件列表注册等任何内容.关键是它不关心它放在哪个页面上.
由于ViewData模型的工作方式,每个请求只存在一个模型对象 - 也就是说,子控件所需的任何内容都必须出现在页面模型中.
最终,MVC团队希望能够推出一个真正的"子控制器"模型,但在此之前,我只是在主控页面模型中添加任何内容,而这些模型也需要儿童控制.
在上面的(3)的情况下,这意味着我的'ProductModel'模型可能必须包含'MailingListSignup'模型的字段.显然这并不理想,但我已经接受了与当前框架的最佳妥协 - 并且最不可能"关闭未来的子控制器模型的任何门".
控制器应负责获取模型的数据,因为模型实际上应该是一个愚蠢的数据结构,不知道它从何处获取数据.但我不希望控制器必须在几个不同的地方创建模型.
我开始做的是创建一个工厂来创建模型.该工厂由控制器调用(模型不了解工厂).
public static class JoinMailingListModelFactory {
public static JoinMailingListModel CreateJoinMailingListModel() {
return new JoinMailingListModel()
{
MailingLists = MailingListCache.GetPartnerMailingLists();
};
}
}
Run Code Online (Sandbox Code Playgroud)
所以我的实际问题是,同样问题的其他人如何实际创建模型.什么是未来与新MVC功能兼容的最佳方法?
RenderAction()我不会进入这里 - 尤其是它只在MVCContrib中,而不是在ASP.NET-MVC的RTM版本中.其他问题引起了我选择不使用它的充分问题.所以我们假装现在只RenderPartial()存在 - 或者至少那就是我决定使用的东西.我已经阅读过这篇文章了,但是我不知道如何让它能够从用户那里获取数据.这是我正在使用的ajax jquery.我知道(或者至少认为)这个不能让人偏袒.但它一直有效,直到渲染失败.我认为这可能会有所帮助.
$.ajax(
{
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: "{'test':" + "'" + dateText + "'}",
dataType: 'json',
url: 'Site/Grab/',
success: function (result) {
alert('Success');
},
error: function (error) {
alert('Fail');
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的控制器
[HttpPost]
public ActionResult Grab(string test)
{
DateTime lineDate= Convert.ToDateTime(test);
List<Info> myInfo= GameCache.Data(lineDate);
return PartialView("_PartialView", myInfo);
}
Run Code Online (Sandbox Code Playgroud) 我在使用没有控制器类的"RenderPartialViewToString"时遇到问题.
我目前不得不在应用程序启动时创建HTML,这需要制作模型,制作视图并将视图转换为HTML字符串.
在我的视图中,它使用HTML Helper函数/扩展,如果有控制器,它似乎只存在.
任何人都可以阐明我如何做到这一点?
renderpartial ×10
asp.net-mvc ×6
c# ×1
clientscript ×1
html-helper ×1
jquery ×1
link-to ×1
param ×1
parameters ×1
partial ×1
yii ×1