Asp.net mvc 3 为什么可以';我是否在用户控件中使用ASP.NETMVC3Razor引擎(使用新的@语法)?
我正在创建一个Asp.net mvc 3 为什么可以';我是否在用户控件中使用ASP.NETMVC3Razor引擎(使用新的@语法)?,asp.net-mvc-3,Asp.net Mvc 3,我正在创建一个UserControl,它将从XML文件中读取数据并填充列表框。我已打开.ascx文件,并想使用@foreach(etc…)但这无效 有人能解释为什么这是不可能的吗?或者确认MVC 3中是否不推荐使用UserControls?.ascx是WebForms@是Razor,这意味着如果您想编写@foreach(…)您需要一个Razor模板:Foo.cshtml: @model IEnumerable<AppName.Models.Foo> @foreach (var ite
UserControl
,它将从XML文件中读取数据并填充列表框
。我已打开.ascx
文件,并想使用@foreach(etc…)
但这无效
有人能解释为什么这是不可能的吗?或者确认MVC 3中是否不推荐使用
UserControl
s?.ascx
是WebForms@
是Razor,这意味着如果您想编写@foreach(…)
您需要一个Razor模板:Foo.cshtml
:
@model IEnumerable<AppName.Models.Foo>
@foreach (var item in Model)
{
...
}
因此,一般来说,在MVC3中使用
用户控件不是一个好主意?@Ardman,服务器端控件不是一个好主意。就视图引擎而言,您可以在ASP.NET MVC 3中很好地使用WebForms或Razor或两者。因此,您可以使用WebForms usercontrol,但要确保它继承自System.Web.Mvc.ViewUserControl
。就Razor视图引擎而言,视图部分(aspx和ascx)之间实际上没有区别。那么控件的事件也会被触发吗?即使它在另一个页面上呈现,也会触发控件的OnLoad、buttonclick事件?
<%@ Control
Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<AppName.Models.Foo>>"
%>
<% foreach(var item in Model) { %>
...
<% } %>