尝试实施新的内容页面时有一个"duh"时刻
这是结构
Master Page
---- Nested Master Page
-------- Nested Master's Content Page
Run Code Online (Sandbox Code Playgroud)
标记:
母版页
<asp:ContentPlaceHolder ID="bodyContent" runat="server">
</asp:ContentPlaceHolder>
Run Code Online (Sandbox Code Playgroud)
嵌套母版页
MasterPageFile="~/Views/Shared/Administrator.Master"
<asp:Content ID="Content2" CotentPlaceHolderID="bodyContent" runat="server">
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
嵌套大师的内容页面
MasterPageFile="~/Views/Intervention/InterventionMaster.master"
<asp:Content runat="server" ID="myContent" ContentPlaceHolderID="Content2">
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
收到错误:
在母版页'/Views/Intervention/InterventionMaster.master'中找不到ContentPlaceHolder'Content2',在内容页面中验证内容控件的ContentPlaceHolderID属性.
我能做错什么?
在NerdDinners示例之后,我有兴趣创建一个强类型的母版页.为了实现这一点,我使用一个基本控制器来检索母版页的数据.所有其他控制器都继承此类.同样,我有ViewModels主页和任何其他视图.视图ViewModel类继承自母版页ViewModel.
子控制器应该如何确保将母版页的数据传递给View而不设置ViewModel与母版页本身相关的属性?
我的母版页将显示一些按钮,这些按钮在XML文件中确定,因此Buttons我填充的类.
MasterPage ViewModel代码段
using System.Collections.Generic;
namespace Site1.Models
{
public class MasterViewModel
{
public List<Button> Buttons{set; get;}
}
}
Run Code Online (Sandbox Code Playgroud)
视图 ViewModel
namespace Site1.Models
{
public class View1ViewModel : MasterViewModel
{
public SomeDataClass SomeData { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
using System.Collections.Generic;
using System.Web.Mvc;
using Site1.Models;
namespace Site1.Controllers
{
public abstract class BaseController : Controller
{
protected MasterViewModel model = new MasterViewModel();
public BaseController()
{
model.Buttons …Run Code Online (Sandbox Code Playgroud) 所以,我有相当多的使用php和coldfusion编程数据库驱动的web应用程序的经验(不是在一起,在不同的时间),我开始研究asp.net世界(我有一个项目即将开始工作)这都是asp.net/c#.)
我的问题是:似乎有很多东西要陷入困境,如果我只是制作基于网络的应用程序(主要是CRUD类型的东西 - 没有心灵弯曲的逻辑)我应该关注的主题是什么?我只是不想走下兔子的踪迹,后来发现它并没有被开发社区过多使用.在阅读一些书籍(ASP.net 3.5一步一步和ASP.net 3.5释放)我发现一些区域的主题将被解释,但在本章的结尾它会说"这东西很酷,但不是为了用于多层应用......"
到目前为止我看过的主题(看起来与我以前用于构建的应用程序有很大不同)是:
我知道这可能是一个广泛的问题 - 但这似乎是一个广泛的话题.
ASP.NET Master Page和MVC Master Page之间有什么区别?那个问题的AJAX Master Page?
我开始学习MVC4了.我发现了基于Razor模板或母版页创建视图的两种可能性.
我想了解两者之间的实际差异.
现在,我可以看到,如果我使用母版页创建一个视图,我可以覆盖几个部分.例如,如果我的主人定义了一个"左列"占位符和一个"正文"占位符,我不仅可以定义特定视图的主体,还可以在"左列"部分中呈现内容,例如显示控件绑定到页面的上下文(从搜索框到股票报价查看器).此外,无法使用Razor模板定义母版页,这些模板比其他语法简洁得多(部分错误:有人设法破解了这方面).
使用Razor Layouts,我只能定义一个可以被特定View覆盖的页面的连续块,并且我应该使用多个布局(断开DRY)来对页面的其他部分进行少量更改.我之前的陈述是正确的还是我错过了什么?
显然,我可以通过充分利用jQuery在页面的任何部分呈现内容,但这是另一回事
我正在使用母版页,当我运行此页面时,它显示以下错误消息:
一个页面只能有一个服务器端表单标记
我怎么解决这个问题?
我的asp.net母版页中有一个公共方法.是否可以从内容页面调用它,如果是这样,步骤/语法是什么?
在使用母版页时,为视图设置html标题(头部)的首选方法是什么?
一种方法是在.aspx文件中使用Page.Title,但这需要在母版页中混淆HTML代码.所以,我们假设没有服务器端控件,只有纯html.有更好的想法吗?
更新:我想在视图中设置标题而不是在控制器或模型中.
以下是我创建的网站环境:
现在我想访问Master页面的脚本管理器,在我的代码隐藏(C#)文件中动态创建用户控件.
如何访问放置在母版页上的脚本管理器到我的子页面.
我有一个强类型的母版页,但我想为它的一些子页面使用不同的类型.
例如,在母版页上......
<%@ Master ... Inherits="System.Web.Mvc.ViewMasterPage<MyWeb.Models.Client>" %>
Run Code Online (Sandbox Code Playgroud)
客户端已经是一个复合对象,因此在某些子页面上,我可以保留相同的模型,只需引用成员对象.但是在其他页面上,这样做是没有意义的,因为我正在处理不同的模型,例如,处理Customer模型的子页面.
我的母版页仍然需要客户端模型,但子视图将完全适用于不同的模型.问题是,在控制器中,您只能将一个对象模型传递给View.有没有办法将一个模型传递给主模型,另一个模型传递给视图?谢谢!
master-pages ×10
asp.net ×5
asp.net-mvc ×4
c# ×3
.net ×2
viewmodel ×2
asp.net-3.5 ×1
controller ×1
data-binding ×1
razor ×1
webforms ×1