mvc 路由及部分视图

RouteConfig.cs代码:html

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 }
            );
        }
    }
}

  控制器代码:jquery

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链接数据库 而后建一个类开始写方法:url

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();
        }
    }
}

  

视图代码:spa

@{
    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>

  部分视图代码:orm

@using MvcApplication1.Models
@model List<Car>

        <ul>
            @foreach(Car data in Model){
            <li>@data.Name @(data.Price)</li>
            }
        </ul>
相关文章
相关标签/搜索