asp.net web form의새로운기능과 html5...
TRANSCRIPT
2014년 3월웹기술의주류 ASP.NET,그전설을다시만나다!
-김경균책임연구원 / Microsoft MVP
Session 3
ASP.NET Web Form의새로운기능과 HTML5 지원
• One ASP.NET
• Bundling 과 Minification
• FriendlyUrl과 ViewSwitcher
• Strongly Typed Data Control
• Model Binding
• Html Encoded Expression
• Unobtrusive Validation
• HTML5 지원
• Bootstrap
Agenda
bundles.Add(new ScriptBundle(“번들경로“).Include(
"스크립트경로",
"스크립트경로",
"스크립트경로",
"스크립트경로"));
<%: System.Web.Optimization.Scripts.Render("번들경로") %>
ScriptManager.ScriptResourceMapping.AddDefinition("번들이름",new ScriptResourceDefinition{
Path=“번들경로”,});
<asp:ScriptManager runat="server"><Scripts>
<asp:ScriptReference Name=“번들이름” /></Scripts>
</asp:ScriptManager>
ScriptManager.ScriptResourceMapping.AddDefinition(“이름”,new ScriptResourceDefinition{
Path=“번들경로”,});
<asp:ScriptManager runat="server"><Scripts>
<asp:ScriptReference Name=“이름” /></Scripts>
</asp:ScriptManager>
속성 설명
Path 로컬릴리스모드경로(최소화버전)
DebugPath 로컬디버그모드경로
CdnPath CDN 릴리스모드경로(최소화버전)
CdnDebugPath CDN 디버그모드경로
CdnSupportsSecureConnection CDN 경로에대한보안연결사용여부
LoadSuccessExpression 스크립트가정상로드되었는지를평가하는식
string str = "1.10.2";ScriptResourceDefinition definition = new ScriptResourceDefinition {
Path = "~/Scripts/jquery-" + str + ".min.js",DebugPath = "~/Scripts/jquery-" + str + ".js",CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + str + ".min.js",CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + str + ".js",CdnSupportsSecureConnection = true,LoadSuccessExpression = "window.jQuery"
};ScriptManager.ScriptResourceMapping.AddDefinition("jquery", definition);
<?xml version="1.0" encoding="utf-8" ?><bundles version="1.0">
<styleBundle path=“번들경로“><include path=“CSS 경로” /><include path=“CSS 경로” />
</styleBundle></bundles>
<webopt:BundleReference runat="server" Path="번들경로" />
항목:27, 받음:4.46MB 항목:10, 받음:1.37MB
//Global.asax의 Application_Start에작성RouteConfig.RegisterRoutes(RoutTable.Routes);
//RouteConfig.cs에작성public static void RegisterRoutes(RouteCollection routes){
var settings = new FriendlyUrlSettings();settings.AutoRedirectMode = RedirectMode.Permanent;//301 or 302 지정routes.EnableFriendlyUrls(settings);
}
<a href="<%: FriendlyUrl.Href("~/Foo", "bar", 123) %>">Click me</a>
<% foreach (var segment in Request.GetFriendlyUrlSegments()) { %>
<li><%: segment %></li>
<% } %>
public IQueryable<Category> GetCategories([QueryString]string keyword)
public IQueryable<Category> GetCategories([QueryString("q")]string keyword)
HTTP://localhost/default?keyword=a //a라는값이 keyword 매개변수로입력됨
HTTP://localhost/default?q=a //a라는 값이 keyword 매개변수로입력됨
public IQueryable<Category> GetCategories([Control(“컨트롤이름“)]int? categoryId)
컨트롤의값이 categoryId 매개변수로입력됨
public IQueryable<Category> GetCategories([FriendlyUrlSegments(1)]int? categoryId)
ex)~/modelbinding3/categoryId/3
<add key="ValidationSettings:UnobtrusiveValidationMode" value="WebForms" />