نیاز خواهید داشت یک قالب سفارشی سلول ایجاد کنید. مثال زیر نحوه انجام کار را نشان میدهد:
خروجی نهایی:
خروجی نهایی:
var ctx = new Entities(); var Fields = ctx.ENTITIES_FEILDS.ToList(); var assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly( name: new AssemblyName("Demo"), access: AssemblyBuilderAccess.Run); var moduleBuilder = assemblyBuilder.DefineDynamicModule(name: "Module"); var typeBuilder = moduleBuilder.DefineType(name: Fields.First(c => c.FEILD_ID == 1).ENTITIES.ENTITY_NAME, attr: TypeAttributes.Public); foreach (var item in Fields) { switch (item.FEILD_TYPE) { case 0://int { var intField = typeBuilder.DefineField(fieldName: string.Format("_{0}", item.FEILD_NAME), type: typeof(string), attributes: FieldAttributes.Private); var intProperty = typeBuilder.DefineProperty( name: item.FEILD_NAME, attributes: PropertyAttributes.HasDefault, returnType: typeof(string), parameterTypes: null); // خاصیت پارامتر ورودی ندارد //تعریف گت var intpropertyGetMethod = typeBuilder.DefineMethod( name: string.Format("get_{0}", item.FEILD_NAME), attributes: MethodAttributes.Public | MethodAttributes.SpecialName | MethodAttributes.HideBySig, returnType: typeof(string), parameterTypes: Type.EmptyTypes); // اتصال گت متد به خاصیت عددی intProperty.SetGetMethod(intpropertyGetMethod); //تعریف ست var propertySetMethod = typeBuilder.DefineMethod(name: string.Format("set_{0}", item.FEILD_NAME), attributes: MethodAttributes.Public | MethodAttributes.SpecialName | MethodAttributes.HideBySig, returnType: typeof(void), parameterTypes: new[] { typeof(string) }); //اتصال ست متد intProperty.SetSetMethod(propertySetMethod); // بدنه گت متد در اینجا تعریف خواهد شد var propertyGetMethodIL = intpropertyGetMethod.GetILGenerator(); propertyGetMethodIL.Emit(OpCodes.Ldarg_0); // بارگذاری اشارهگری به وهلهای از کلاس جاری در پشته propertyGetMethodIL.Emit(OpCodes.Ldfld, intField); // بارگذاری فیلد نام propertyGetMethodIL.Emit(OpCodes.Ret); //بدنه ست متد در اینجا تعریف شده است var propertySetIL = propertySetMethod.GetILGenerator(); propertySetIL.Emit(OpCodes.Ldarg_0); propertySetIL.Emit(OpCodes.Ldarg_1); propertySetIL.Emit(OpCodes.Stfld, intField); propertySetIL.Emit(OpCodes.Ret); } break; case 1://string { } break; } } var t = typeBuilder.CreateType(); var instance = Activator.CreateInstance(t); var type = instance.GetType(); //تغییر مقدار یک خاصیت var setNameMethod = type.GetMethod("set_CoOrder"); setNameMethod.Invoke(obj: instance, parameters: new[] {"1"}); // دسترسی به خاصیت نام var nProperty = t.GetProperty("CoOrder"); // و دریافت مقدار آن برای نمایش var result = nProperty.GetValue(instance, null); Console.WriteLine(result); Console.ReadKey();
using System.Collections.Generic; using System.Drawing; using iTextSharp.text; using PdfRpt.Core.Contracts; namespace PdfReportSamples.HexDump { public class GrayTemplate : ITableTemplate { public HorizontalAlignment HeaderHorizontalAlignment { get { return HorizontalAlignment.Center; } } public BaseColor AlternatingRowBackgroundColor { get { return new BaseColor(Color.WhiteSmoke); } } public BaseColor CellBorderColor { get { return new BaseColor(Color.LightGray); } } public IList<BaseColor> HeaderBackgroundColor { get { return new List<BaseColor> { new BaseColor(ColorTranslator.FromHtml("#990000")), new BaseColor(ColorTranslator.FromHtml("#e80000")) }; } } public BaseColor RowBackgroundColor { get { return null; } } public IList<BaseColor> PreviousPageSummaryRowBackgroundColor { get { return new List<BaseColor> { new BaseColor(Color.LightSkyBlue) }; } } public IList<BaseColor> SummaryRowBackgroundColor { get { return new List<BaseColor> { new BaseColor(Color.LightSteelBlue) }; } } public IList<BaseColor> PageSummaryRowBackgroundColor { get { return new List<BaseColor> { new BaseColor(Color.Yellow) }; } } public BaseColor AlternatingRowFontColor { get { return new BaseColor(ColorTranslator.FromHtml("#333333")); } } public BaseColor HeaderFontColor { get { return new BaseColor(Color.White); } } public BaseColor RowFontColor { get { return new BaseColor(ColorTranslator.FromHtml("#333333")); } } public BaseColor PreviousPageSummaryRowFontColor { get { return new BaseColor(Color.Black); } } public BaseColor SummaryRowFontColor { get { return new BaseColor(Color.Black); } } public BaseColor PageSummaryRowFontColor { get { return new BaseColor(Color.Black); } } public bool ShowGridLines { get { return true; } } } }
.MainTableTemplate(template => { template.CustomTemplate(new GrayTemplate()); })
using System; using System.Collections; using System.Linq; namespace PdfReportSamples.HexDump { public static class PrintHex { public static char ToSafeAscii(this int b) { if (b >= 32 && b <= 126) { return (char)b; } return '_'; } public static IEnumerable HexDump(this byte[] data) { int bytesPerLine = 16; return data .Select((c, i) => new { Char = c, Chunk = i / bytesPerLine }) .GroupBy(c => c.Chunk) .Select(g => new { Hex = g.Select(c => String.Format("{0:X2} ", c.Char)).Aggregate((s, i) => s + i), Chars = g.Select(c => ToSafeAscii(c.Char).ToString()).Aggregate((s, i) => s + i) }) .Select((s, i) => new { Offset = String.Format("{0:d6}", i * bytesPerLine), Hex = s.Hex, Chars = s.Chars }); } } }
using System; using System.Text; using PdfRpt.Core.Contracts; using PdfRpt.FluentInterface; namespace PdfReportSamples.HexDump { public class HexDumpPdfReport { public IPdfReportData CreatePdfReport() { return new PdfReport().DocumentPreferences(doc => { doc.RunDirection(PdfRunDirection.LeftToRight); doc.Orientation(PageOrientation.Portrait); doc.PageSize(PdfPageSize.A4); doc.DocumentMetadata(new DocumentMetadata { Author = "Vahid", Application = "PdfRpt", Keywords = "Test", Subject = "Test Rpt", Title = "Test" }); }) .DefaultFonts(fonts => { fonts.Path(Environment.GetEnvironmentVariable("SystemRoot") + "\\fonts\\COUR.ttf", Environment.GetEnvironmentVariable("SystemRoot") + "\\fonts\\tahoma.TTF"); }) .PagesFooter(footer => { footer.DefaultFooter(DateTime.Now.ToString("MM/dd/yyyy")); }) .PagesHeader(header => { header.DefaultHeader(defaultHeader => { defaultHeader.ImagePath(AppPath.ApplicationPath + "\\Images\\01.png"); defaultHeader.Message("Hex Dump"); }); }) .MainTableTemplate(template => { template.CustomTemplate(new GrayTemplate()); }) .MainTablePreferences(table => { table.ColumnsWidthsType(TableColumnWidthType.Relative); }) .MainTableDataSource(dataSource => { var data = Encoding.UTF8.GetBytes("The quick brown fox jumps over the lazy dog."); var list = data.HexDump(); dataSource.AnonymousTypeList(list); }) .MainTableColumns(columns => { columns.AddColumn(column => { column.PropertyName("Offset"); column.CellsHorizontalAlignment(HorizontalAlignment.Center); column.IsVisible(true); column.Order(0); column.Width(0.5f); column.HeaderCell("Offset"); }); columns.AddColumn(column => { column.PropertyName("Hex"); column.CellsHorizontalAlignment(HorizontalAlignment.Left); column.IsVisible(true); column.Order(1); column.Width(2.5f); column.HeaderCell("Hex"); }); columns.AddColumn(column => { column.PropertyName("Chars"); column.CellsHorizontalAlignment(HorizontalAlignment.Left); column.IsVisible(true); column.Order(2); column.Width(1f); column.HeaderCell("Chars"); }); }) .MainTableEvents(events => { events.DataSourceIsEmpty(message: "There is no data available to display."); }) .Generate(data => data.AsPdfFile(AppPath.ApplicationPath + "\\Pdf\\HexDumpSampleRpt.pdf")); } } }
.MainTableDataSource(dataSource => { var data = Encoding.UTF8.GetBytes("The quick brown fox jumps over the lazy dog."); var list = data.HexDump(); dataSource.AnonymousTypeList(list); })
column.PropertyName("Offset"); //... column.PropertyName("Hex"); //... column.PropertyName("Chars");
.Select(x => new { OrderInfo = x.OrderInfoData })
column.PropertyName("OrderInfo.Price");
public class PostController : Controller { ApplicationDbContext db; // GET: Post public ActionResult List() { using (db=new ApplicationDbContext()) { var query = db.Posts.ToList(); return PartialView("List",query); } } }
<div ng-app="postmodule"> <div ng-controller="PostController"> <ul> <li ng-repeat="item in ListOfItems"> {{item.Title}} <hr /> {{item.Text}} </li> </ul> </div> </div>
<div class="container body-content" > <script src="~/Scripts/angular.js"></script> <script src="~/Scripts/angular-route.js"></script> <script> var PostApp = angular.module('postmodule', []).config(['$routeProvider', function ($routeProvider) { $routeProvider. when('/list', { templateUrl: '/Post/List', controller: 'PostController' }); }]); PostApp.controller('PostController', function ($scope, $http, postServices) { //... $scope.ListOfItems = postServices.GetPosts() .success(function (data) { $scope.ListOfItems = data; }); //... }); PostApp.service('postServices', function ($http) { this.GetPosts = function () { return $http.get('/Post/List'); }; }); </script> <a href="#list">list post</a> <div ng-view=""></div> @RenderBody() <hr /> <footer> <p>© @DateTime.Now.Year - My ASP.NET Application</p> </footer> </div>
using (var db = new DBTestEntities()) { dataGridView1.DataSource =(from t in db.test select new { Id= t.Id, time = new PersianDateTime( DateTime.Parse(t.ResponseDate.ToString())).ToString(PersianDateTimeFormat.DateShortTime) }).ToList(); }
new PdfReport().DocumentPreferences(doc => { doc.RunDirection(PdfRunDirection.RightToLeft); doc.Orientation(PageOrientation.Portrait); doc.PageSize(PdfPageSize.A4); doc.DocumentMetadata(new DocumentMetadata { Author = _company, Application = "نرم افزار ", Keywords = "سود فاکتورها", Subject = "سود فاکتورها", Title = "سود فاکتورها" }); }) .DefaultFonts(fonts => { fonts.Path(Path.Combine(Environment.CurrentDirectory, @"fonts\irsans.ttf"), Path.Combine(Environment.CurrentDirectory, @"fonts\verdana.ttf")); fonts.Size(8); }) .PagesFooter(footer => { footer.DefaultFooter(DateTimeHelper.ToPersianShortDateString(DateTime.Now,true,true)); }) .PagesHeader(header => { header.HtmlHeader(rptHeader => { // Register fonts and styles var styleSheet = new iTextSharp.text.html.simpleparser.StyleSheet(); iTextSharp.text.FontFactory.Register(Path.Combine(Environment.CurrentDirectory, @"fonts\BFARNAZ.TTF"), "Farnaz"); styleSheet.LoadStyle("report-header", "size", "12pt"); styleSheet.LoadStyle("report-header", "font-family", "Farnaz"); iTextSharp.text.FontFactory.Register(Path.Combine(Environment.CurrentDirectory, @"fonts\BNAZANIN.TTF"), "Bnazanin"); styleSheet.LoadStyle("report-desc", "size", "12pt"); styleSheet.LoadStyle("report-desc", "font-family", "Bnazanin"); rptHeader.PageHeaderProperties(new HeaderBasicProperties { RunDirection = PdfRunDirection.RightToLeft, HorizontalAlignment = PdfRpt.Core.Contracts.HorizontalAlignment.Center, ShowBorder = false, PdfFont = header.PdfFont, StyleSheet = styleSheet }); rptHeader.AddPageHeader(pageHeader => { var title = "سود فاکتورها"; var companyName = string.Concat("شرکت / فروشگاه ", _company); var financialYear = string.Concat("سال مالی ", _financialPeriod.GetCurrentFinancialPeriodTitle()); return string.Format(@" <table cellpadding='0' cellspacing='0' class='report-header'> <tr> <td>{0}</td> </tr> <tr> <td>{1}</td> </tr> <tr> <td>{2}</td> </tr> </table> <table cellpadding='0' cellspacing='0' class='report-desc'> <tr> <td align='left' width='10%'>{3}</td><td align='left' width='10%'>از تاریخ:</td> <td align='left' width='65%'>{4}</td><td align='left' width='15%'>از شماره:</td> </tr> <tr> <td align='left' width='10%'>{5}</td> <td align='left' width='10%'>تا تاریخ:</td> <td align='left' width='65%'>{6}</td> <td align='left' width='15%'>تا شماره:</td> </tr> </table> " , title, companyName, financialYear, DateTimeHelper.ToPersianShortDateString(_fromDate), _fromNumber, DateTimeHelper.ToPersianShortDateString(_toDate), _toNumber ); }); }); }) .MainTableTemplate(template => { template.CustomTemplate(new GrayTemplate()); }) .MainTablePreferences(table => { table.ColumnsWidthsType(TableColumnWidthType.Relative); table.NumberOfDataRowsPerPage(0); }) .MainTableDataSource(dataSource => { var factorsProfitItems = FactorsProfitItems.Select(g => new { Number = g.Number, SaleDate = g.SaleDate, Customer = g.Customer, Description = g.Description, FactorProfit = g.FactorProfit, Discount = g.Discount, RealProfit = g.RealProfit }); dataSource.StronglyTypedList(factorsProfitItems); }) .MainTableColumns(columns => { columns.AddColumn(column => { column.PropertyName<FactorsProfitItemPrintViewModel>(x => x.Number); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Center); column.IsVisible(true); column.Order(0); column.Width(1); column.HeaderCell("ش فاکتور"); }); columns.AddColumn(column => { column.PropertyName<FactorsProfitItemPrintViewModel>(x => x.SaleDate); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Left); column.IsVisible(true); column.Order(1); column.Width(1); column.ColumnItemsTemplate(template => { template.TextBlock(); template.DisplayFormatFormula(obj => DateTimeHelper.ToPersianShortDateString((DateTime)obj)); }); column.HeaderCell("تاریخ"); }); columns.AddColumn(column => { column.PropertyName<FactorsProfitItemPrintViewModel>(x => x.Customer); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Left); column.IsVisible(true); column.Order(2); column.Width(1.5f); column.HeaderCell("مشتری"); }); columns.AddColumn(column => { column.PropertyName<FactorsProfitItemPrintViewModel>(x => x.Description); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Center); column.IsVisible(true); column.Order(3); column.Width(2); column.HeaderCell("شرح"); }); columns.AddColumn(column => { column.PropertyName<FactorsProfitItemPrintViewModel>(x => x.FactorProfit); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Right); column.IsVisible(true); column.Order(4); column.Width(1); column.ColumnItemsTemplate(template => { template.TextBlock(); template.DisplayFormatFormula(obj => string.Format("{0:n0}", obj)); }); column.AggregateFunction(aggregateFunction => { aggregateFunction.NumericAggregateFunction(AggregateFunction.Sum); aggregateFunction.DisplayFormatFormula(obj => obj == null ? string.Empty : string.Format("{0:n0}", obj)); }); column.HeaderCell("سود فاکتور"); }); columns.AddColumn(column => { column.PropertyName<FactorsProfitItemPrintViewModel>(x => x.Discount); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Right); column.IsVisible(true); column.Order(5); column.Width(1); column.ColumnItemsTemplate(template => { template.TextBlock(); template.DisplayFormatFormula(obj => string.Format("{0:n0}", obj)); }); column.AggregateFunction(aggregateFunction => { aggregateFunction.NumericAggregateFunction(AggregateFunction.Sum); aggregateFunction.DisplayFormatFormula(obj => obj == null ? string.Empty : string.Format("{0:n0}", obj)); }); column.HeaderCell("تخفیف"); }); columns.AddColumn(column => { column.PropertyName<FactorsProfitItemPrintViewModel>(x => x.RealProfit); column.CellsHorizontalAlignment(PdfRpt.Core.Contracts.HorizontalAlignment.Right); column.IsVisible(true); column.Order(6); column.Width(1); column.ColumnItemsTemplate(template => { template.TextBlock(); template.DisplayFormatFormula(obj => string.Format("{0:n0}", obj)); }); column.AggregateFunction(aggregateFunction => { aggregateFunction.NumericAggregateFunction(AggregateFunction.Sum); aggregateFunction.DisplayFormatFormula(obj => obj == null ? string.Empty : string.Format("{0:n0}", obj)); }); column.HeaderCell("سود خالص"); }); }) .MainTableSummarySettings(summarySettings => { summarySettings.OverallSummarySettings("جمع کل"); summarySettings.PreviousPageSummarySettings("نقل از صفحه قبل"); summarySettings.PageSummarySettings("جمع کل صفحه"); }) .MainTableEvents(events => { events.DataSourceIsEmpty(message: "داده ای جهت نمایش وجود ندارد."); events.CellCreated(args => { args.Cell.BasicProperties.CellPadding = 4f; }); events.MainTableAdded(args => { var taxTable = new PdfGrid(3); // Create a clone of the MainTable's structure taxTable.RunDirection = 3; taxTable.SetWidths(new float[] { 3, 3, 3 }); taxTable.WidthPercentage = 100f; taxTable.SpacingBefore = 60f; taxTable.AddSimpleRow( (data, cellProperties) => { data.Value = "امضاء تنظیم کننده"; cellProperties.ShowBorder = false; cellProperties.PdfFont = args.PdfFont; }, (data, cellProperties) => { data.Value = "امضاء حسابدار"; cellProperties.ShowBorder = false; cellProperties.PdfFont = args.PdfFont; }, (data, cellProperties) => { data.Value = "امضاء مدیرعامل"; cellProperties.ShowBorder = false; cellProperties.PdfFont = args.PdfFont; }); args.PdfDoc.Add(taxTable); }); }) .Export(export => { export.ToExcel("خروجی اکسل"); export.ToCsv("خروجی CSV"); export.ToXml("خروجی XML"); }) .Generate(data => data.AsPdfFile(_documentSource));
var excel = new ExcelQueryFactory(pathToExcelFile); string sheetName = "Sheet1"; var persons = from a in excel.WorksheetNoHeader(sheetName) where a[1] == "Mashhad" //مقدار در ستون دوم select a; foreach (var a in persons) { for(int i=0;i<a.Count;i++) MessageBox.Show(a[i]); }
منابع مختلفی در اینترنت موجود هست برای دریافت دیتای مرتبط به تقسیمات کشوری ولی خیلی از موارد یا تقسیم بندی کاملی ندارند یا قدیمی هستند یا فرمت مناسبی ندارند.
برای یکی از نرم افزارها نیاز بود لیست به روز (سال 96-97) شهرهای ایران رو به تفکیک استان/شهرستان/شهر به همراه مختصات آنها برای نمایش روی نقشه به صورت اطلاعات پایه در نرم افزار داشته باشیم... این شد که این فایل رو با توجه به دیتای سایت آمار کشور و چند سایت دیگر جمع آوری کردیم.
در نهایت این لیست رو به فرمت json به اشتراک گذاشتم تا دوستان هم اگر نیازی داشتند استفاده کنند.
column.ColumnItemsTemplate(template => { template.Symbol(data => { if (Enum.IsDefined(typeof(AdobeZapfDingbats), data)) { return (AdobeZapfDingbats)data; } return AdobeZapfDingbats.BallotX; }); });
<meta name="fragment" content="!"> <base href="/">
http://www.example.com/?_escaped_fragment_=
http://www.example.com/user/123?_escaped_fragment_=
DynamicModuleUtility.RegisterModule(typeof(Prerender.io.PrerenderModule));
http://www.example.com/user/123?_escaped_fragment_=
<package id="PhantomJS" version="1.9.2" targetFramework="net452" /> <package id="phantomjs.exe" version="1.9.2.1" targetFramework="net452" />
public class AjaxCrawlableAttribute : System.Web.Mvc.ActionFilterAttribute { private const string Fragment = "_escaped_fragment_"; public override void OnActionExecuting(ActionExecutingContext filterContext) { var request = filterContext.RequestContext.HttpContext.Request; var url = request.Url.ToString(); if (request.QueryString[Fragment] != null && !url.Contains("HtmlSnapshot/returnHTML")) { url = url.Replace("?_escaped_fragment_=", string.Empty).Replace(request.Url.Scheme + "://", string.Empty); url = url.Split(':')[1]; filterContext.Result = new RedirectToRouteResult( new RouteValueDictionary { { "controller", "HtmlSnapshot" }, { "action", "returnHTML" }, { "url", url } }); } return; } }
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "HtmlSnapshot", url: "HtmlSnapshot/returnHTML/{*url}", defaults: new { controller = "HtmlSnapshot", action = "returnHTML", url = UrlParameter.Optional }); routes.MapRoute( name: "SPA", url: "{*catchall}", defaults: new { controller = "Home", action = "Index" }) }
public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new AjaxCrawlableAttribute()); } }
public ActionResult returnHTML(string url) { var prefix = HttpContext.Request.Url.Scheme + "://" + HttpContext.Request.Url.Host+":"; url = prefix+url; string appRoot = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory); var startInfo = new ProcessStartInfo { Arguments = string.Format("{0} {1}", Path.Combine(appRoot, "Scripts\\seo.js"), url), FileName = Path.Combine(appRoot, "bin\\phantomjs.exe"), UseShellExecute = false, CreateNoWindow = true, RedirectStandardOutput = true, RedirectStandardError = true, RedirectStandardInput = true, StandardOutputEncoding = System.Text.Encoding.UTF8 }; var p = new Process(); p.StartInfo = startInfo; p.Start(); string output1 = p.StandardOutput.ReadToEnd(); p.WaitForExit(); ViewData["result"] = output1.Replace("<!-- ngView: -->", "").Replace("ng-view=\"\"", ""); return View(); }
@{ Layout = null; } @Html.Raw(ViewBag.result)
console.log(page.content)
var page = require('webpage').create(); var system = require('system'); var lastReceived = new Date().getTime(); var requestCount = 0; var responseCount = 0; var requestIds = []; var startTime = new Date().getTime();; page.onResourceReceived = function (response) { if (requestIds.indexOf(response.id) !== -1) { lastReceived = new Date().getTime(); responseCount++; requestIds[requestIds.indexOf(response.id)] = null; } }; page.onResourceRequested = function (request) { if (requestIds.indexOf(request.id) === -1) { requestIds.push(request.id); requestCount++; } }; function checkLoaded() { return page.evaluate(function () { return document.all["compositionComplete"]; }) != null; } // Open the page page.open(system.args[1], function () { }); var checkComplete = function () { // We don't allow it to take longer than 5 seconds but // don't return until all requests are finished if ((new Date().getTime() - lastReceived > 300 && requestCount === responseCount) || new Date().getTime() - startTime > 10000 || checkLoaded()) { clearInterval(checkCompleteInterval); console.log(page.content); phantom.exit(); } } // Let us check to see if the page is finished rendering var checkCompleteInterval = setInterval(checkComplete, 300);
<!DOCTYPE html> <html ng-app="appOne"> <head> <meta name="fragment" content="!"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta charset="utf-8" /> <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" /> <meta name="viewport" content="width=device-width" /> <base href="/"> @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr") <script src="~/Scripts/angular/angular.js"></script> <script src="~/Scripts/angular/angular-route.js"></script> <script src="~/Scripts/angular/angular-animate.js"></script> <script> angular.module('appOne', ['ngRoute'], function ($routeProvider, $locationProvider) { $routeProvider.when('/one', { template: "<div>one</div>", controller: function ($scope) { } }) .when('/two', { template: "<div>two</div>", controller: function ($scope) { } }).when('/', { template: "<div>home</div>", controller: function ($scope) { } }); $locationProvider.html5Mode({ enabled: true }); }); </script> </head> <body> <div id="body"> <section ng-view></section> @RenderBody() </div> <div id="footer"> <ul class='xoxo blogroll'> <li><a href="one">one</a></li> <li><a href="two">two</a></li> </ul> </div> </body> </html>