mvc 路由及部分视图

RouteConfig.cs代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace MvcApplication1
{
    public class RouteConfig
    {
        //定义:路由是定义如何处理客户端请求。

        //路由名称的设置: 在路由设置中,路由名称是可选输入参数,路由名称可生产URL路由,但是在路由解析中没有什么作用。不过当使用路由名称来生产URL路由的时候,路由模块将快速定位到指定名称的路由,否则将会进行查询,直到找到对应的路由。

        //顺序:路由表中的路由输入顺序应该按使用频率从前向后输入。最常用的放在最前面,此法方法不仅提高生产URL路由的效率,而且也提高路由解析的效率。因为在路由解析的过程中,一旦找到匹配的路由,就停止解析。

        //注意:在改变路由存放位置时,路由的次序改变是否实质性的影响匹配的结果。
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
               name: "Default1",
               url: "find/{low}-{upp}",
               defaults: new { controller = "Home", action = "FindByPrice", low=0,upp=100 }
           );
            routes.MapRoute(
               name: "Default2",
               url: "k{year}/{month}/{day}",
               defaults: new { controller = "Home", action = "Show", year = "2015", month = "1", day = "1" }
           );

            routes.MapRoute(
                name: "Default3",
                url: "{k}-{parent}",
                defaults: new { controller = "Home", action = "Show", parent = "" }
            );

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }
    }
}

  控制器代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcApplication1.Models;

namespace MvcApplication1.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/

        public ActionResult Index()
        {
            return View();
        }
        public ActionResult FindByPrice(decimal low, decimal upp)
        {
            List<Car> list = new CarDA().SelectByPrice(low, upp);
            return PartialView(list);
        }
        public string ShowParent(string parent)
        {
            return "父级下显示的视图...";
        }
        public string Show(int year, int month, int day)
        {
            return year + "年" + month + "月" + day + "日";
        }

    }
}

  

模型:

首先要用linq连接数据库 然后建一个类开始写方法:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MvcApplication1.Models
{
    public class CarDA
    {
        private MyDBDataContext _context = new MyDBDataContext();
        public List<Car> Select()
        {
            return _context.Car.ToList();
        }
        public List<Car> SelectByPrice(decimal low, decimal upp)
        {
            var query = _context.Car.Where(p => p.Price >= low && p.Price <= upp);
            return query.ToList();
        }
    }
}

  

视图代码:

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <script src="~/Script/jquery-1.7.1.min.js"></script>
    <script>
        function test() {
            var low = $("#low").val();
            var upp = $("#upp").val();
            $("#dd").load("/find/" + low + "-" + upp);
        }
    </script>
</head>
<body>
    <div>
        <div>
        @Html.ActionLink("此处走第二个路径 ", "Show", new { year=2015, month=7,day=11})<br>
        @Html.ActionLink("此处走第三个路径 ", "ShowParent", new {parent=""})<br>
        @using (Html.BeginForm("FindByPrice", "Home"))
        {
            <div>
            最低价格:@Html.TextBox("low")
            最高价格:@Html.TextBox("upp")
            <input type="button" onclick="test()" value="查询" />
           </div>
        }
    </div>
    <div id="dd"></div>
    </div>
</body>
</html>

  部分视图代码:

@using MvcApplication1.Models
@model List<Car>

        <ul>
            @foreach(Car data in Model){
            <li>@data.Name @(data.Price)</li>
            }
        </ul>

  

时间: 2024-08-08 04:30:50

mvc 路由及部分视图的相关文章

MVC路由自定义及视图找寻规则

这篇关于MVC路由及视图规则本来是昨天要发的,但是本人真的有点懒,终于今天忍无可忍了.初学MVC的时候比现在还菜一点(现在也很菜),想着会用就行,但是有时还是会好奇,为什么它能找到控制器?为什么控制器return View();就能找到视图,而为什么视图一定要建在Views文件下?好像说的有点多了,接下来一边上例子,一边分析! MVC路由自定义 相信对于MVC路由的配置大家也都了解过一些,其实,这也不是本章的重点. 创建MVC项目的时候,根目录下>>App_Start>>Route

[.net 面向对象程序设计深入](6).NET MVC 6 —— 模型、视图、控制器、路由等的基本操作

[.net 面向对象程序设计深入](6).NET MVC 6 —— 模型.视图.控制器.路由等的基本操作 1. 使用Visual Studio 2015创建Web App (1)文件>新建>项目,选择Web>ASP.NET Web 应用程序 (2)在新项目MyFirstWebApp对话框中,选择ASP.NET 5模板>Web Application 由于是RC版,这里的”添加单元测试“暂时不能选,上面的WebForms MVC WebAPI将合并,前面一节介绍过了,因此也不需要再选

MVC路由探寻,涉及路由的惯例、自定义片段变量、约束、生成链接和URL等

引子 在了解MVC路由之前,必须了解的概念是"片段".片段是指除主机名和查询字符串以外的.以"/"分隔的各个部分.比如,在http://site.com/Home/Index中,包含2个片段,第一个片段是Home,第二个片段是Index. URL匹配的特点:● 保守的:URL中的片段数量必须和路由规则中的片段数量一致(路由规则没有设置默认值的前提下)● 宽松的:在满足片段数要求的前提下,URL中的片段内容是宽松的 本篇涉及的方面包括:1.路由惯例2.自定义片段变量3

【ASP.NET MVC 牛刀小试】 ASP.NET MVC 路由

例子引入 先看看如下例子,你能完全明白吗? 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.Mvc; 6 using System.Web.Routing; 7 8 namespace MVCDemo 9 { 10 public class RouteConfig 11 { 12 public static void Re

ASP.NET MVC 路由机制

传统的ASP.NET web form 是假想,用户请求的URL和服务器上面的文件之间有某种关联,这里,服务器的工作就是根据接收到的用户请求,检索到对应的文件给用户.这种方式在web form时代很适合,因为ASP.NET页面是aspx页面,并且能够独立的回复用户的浏览器请求. 但是这中方式在MVC中不合适,在MVC中用户请求是通过控制器里面的方法来处理的,在MVC中没有ASP.NET,一对一的文件关联关系;为了解决这个问题,我们要学会MVC路由机制. 路由机制有两个功能: 1.检查收到的URL

史上最全的ASP.NET MVC路由配置,以后RouteConfig再弄不懂神仙都难救你啦~

继续延续坑爹标题系列.其实只是把apress.pro.asp.net.mvc.4.framework里的CHAPTER 13翻译过来罢了,当做自己总结吧.内容看看就好,排版就不要吐槽了,反正我知道你也不会反对的. XD 首先说URL的构造. 其实这个也谈不上构造,只是语法特性吧. 命名参数规范+匿名对象 routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new

ASP.NET MVC路由(五)

ASP.NET MVC路由(五) 前言 前面的篇幅讲解了MVC中的路由系统,只是大概的一个实现流程,让大家更清晰路由系统在MVC中所做的以及所在的位置,通过模糊的概念描述.思维导图没法让您看到路由的实际运用,特此篇幅来说明一下简单的示例. 路由的命名空间的定义 对于路由当中url规则.默认值.url参数约束这些的定义网上都有,本篇讲一下路由中命名空间的定义. 大家都知道路由的作用,让请求匹配到合理的控制器名称,并且交由控制器工厂来生成控制器来执行请求.然而在项目中难免会命名出相同名称的控制器,我

asp.net MVC 路由机制 Route

1:ASP.NET的路由机制主要有两种用途: -->1:匹配请求的Url,将这些请求映射到控制器 -->2:选择一个匹配的路由,构造出一个Url 2:ASP.NET路由机制与URL重写的区别 -->Url重写关注的是将一个Url映射到另一个Url. 路由机制关注的是将Url映射到资源上.资源不一定是一个物理页面,可以是类中的方法. -->Url重写只能用于传入的请求Url 路由机制可以匹配传入的Url,也能够生成一个Url -->Url重写大多是IIS级别的,是IIS的一个组

ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径

原文:ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径 IViewLocationExpander API ExpandViewLocations Razor视图路径,视图引擎会搜索该路径. PopulateValues 每次调用都会填充路由 项目目录如下所示 创建区域扩展器,其实我并不需要多区域,我目前只需要达到一个区域中有多个文件夹进行存放我的视图. 所以我通过实现IViewLocationExpander进行扩展添加我自定义视图路径规则即可正如