ASP.NET MVC上的一些文本声明"没有runat服务器标签",即使这篇MSDN文章也说过,在该语句的正上方,在HEAD元素中有一个带有runat服务器标签的代码示例:
http://msdn.microsoft.com/en-us/magazine/cc337884.aspx
在我读过的StackOverflow对话中
"你想使用"runat = server"控件的事实意味着你应该做一个传统的ASP.NET应用程序.
当然,在Site.Master页面中,ContentPlaceHolders中有runat服务器属性.
在runat服务器方面我唯一看不到ASP.NET MVC的是每个.aspx页面/视图上普遍存在的FORM runat ="server"标签.
但是,ASP.NET MVC中的其余runat服务器标签怎么样呢?当人们说ASP.NET MVC没有这些时,人们的意思是什么?
如果在任何元素(例如DIV)上使用runat ="server"标记,它将在编译页面中将该代码呈现为单独的方法.
如果您要转换"遗留"代码,最好立即删除所有runat标记,否则最终会出现以下代码导致错误的情况.
<% foreach (var cat in cats) { %><%= cat.name %> is a <%= cat.breed %><% } %>
这段代码无法告诉你一些 返回MVC应用程序的默认模板: 您将看到当前模板为您提供以下内容 这让我想知道 - 如果我们使用<%=语法将标题直接写入 事实证明,我怀疑代码隐藏 在我的母版页中,我会删除'cat'
超出范围的疯狂.最后,当你查看完整生成的代码时,你会发现它head
:
title
标签 - 那么为什么我们需要让它运行?head
在标题标记内部查找现有值(这里可以输出<%= Html.Encode(ViewData["Title"]) %>
.如果找到一个(MVC模板中的所有样本视图都是这种情况)那么它如果没有标题(如果ViewData ["Title"]为空或空),它将默认为Title
属性在视图中定义的任何内容:<%@ Page Language="C#" MasterPageFile="~/Views/Shared/RRMaster.Master"
Title="View Products" AutoEventWireup="true" CodeBehind="ViewProduct.aspx.cs"
Inherits="RR_MVC.Views.Products.ViewProduct" %>
runat='server'
标记 - 因为我不认为我会想要从视图的Title
属性填充我的页面标题.但是我暂时没有做好这个有关这个主题的Phil的承诺博客文章 - 如果runat服务器给了我任何对我的CSS和JS有用的东西.
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有