MV控制器的Route属性不起作用

时间:2019-07-11 06:43:11

标签: asp.net-mvc

我有一个名为MyCtl的mvc控制器。MyController包含两种方法:

  1. Test1
  2. Test2

在我的网络api配置中

 config.MapHttpAttributeRoutes();
 config.Routes.MapHttpRoute(
         name: "DefaultApi",
         routeTemplate: "api/{controller}/{id}",
         defaults: new { id = RouteParameter.Optional }
         );

MyCtl.cs

        public class MyCtlController : Controller
        {
     public ActionResult Test1()
            {
                return this.JsonResult("1");
            }

            [System.Web.Http.Route("t2")]
            public ActionResult Test2()
            {
                return this.JsonResult("2");
            }
    }

当我浏览到

http://localhost:8080/mvc/MyCtl/Test1

http://localhost:8080/mvc/MyCtl/Test2

我得到答案

当我浏览到

http://localhost:8080/api/MyCtl/t2

我知道

  

未找到与请求URI'http://localhost:8080/api/MyCtl/t2'相匹配的HTTP资源。   找不到与名为“ MyCtl”的控制器匹配的类型。

我设置的 web.config 中的

    <rewrite>
          <rules>

            <rule name="Index Rule" stopProcessing="true">
              <match url=".*" />
              <conditions logicalGrouping="MatchAll">
                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                <add input="{REQUEST_URI}" matchType="Pattern" pattern="^/mvc/" negate="true" />
                <add input="{REQUEST_URI}" matchType="Pattern" pattern="^/api/" negate="true" />
              </conditions>
              <action type="Rewrite" url="/dist/index.html" />
            </rule>
          </rules>
        </rewrite>

请告诉我我想念什么?

谢谢

0 个答案:

没有答案