Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc Win8 ASP.net HttpRouteUrl_Asp.net Mvc_Windows_Winapi - Fatal编程技术网

Asp.net mvc Win8 ASP.net HttpRouteUrl

Asp.net mvc Win8 ASP.net HttpRouteUrl,asp.net-mvc,windows,winapi,Asp.net Mvc,Windows,Winapi,我对Win8和ASP.net开发还很陌生,我对任何缺乏清晰性或规范表示歉意,因为我是一名3D图形程序员,从事ASP.net后端系统的开发。目标是与目标Win8应用程序通信,以使用用户(管理员)通过ASP.net网站输入的数据 我遇到了多重障碍和死胡同,因为它是新的Win8技术和一些可靠的参考资料 在HomeController.cs中,我尝试调用: public ActionResult Admin() { string apiUri = Url.HttpRouteU

我对Win8和ASP.net开发还很陌生,我对任何缺乏清晰性或规范表示歉意,因为我是一名3D图形程序员,从事ASP.net后端系统的开发。目标是与目标Win8应用程序通信,以使用用户(管理员)通过ASP.net网站输入的数据

我遇到了多重障碍和死胡同,因为它是新的Win8技术和一些可靠的参考资料

在HomeController.cs中,我尝试调用:

 public ActionResult Admin()
    {

        string apiUri = Url.HttpRouteUrl("DefaultApi", new { controller = "testModel", });
        ViewBag.ApiUrl = new Uri(Request.Url, apiUri).AbsoluteUri.ToString();

        return View();
    }
这样我就可以启用到我的管理员控制器的路由。但是,我在浏览器中获得以下输出:

我正在使用从internet下载的示例项目作为框架,因为它包含WebApiConfig.cs文件,然而,生成一个新的VS2012 ASP.NET MVC Web应用程序项目并不包含此文件,我相信我需要它,因为这是我能够指定我希望序列化为JSON并删除XML格式的点

我已经清理了bin中的.DLL文件,并清理了obj文件夹,以防它引用的对象不再存在

我还创建了几个其他项目,其中一个使用向导生成的VS2012 MVC Web app项目,它实现:

 Url.RouteUrl
而不是

 Url.HttpRouteUrl
但我确信这不会达到同样的效果,因为我希望通过互联网将http从服务器传输到目标应用程序。如果我尝试使用后者,则会出现以下错误:

   'System.Web.Mvc.UrlHelper' does not contain a definition for 'HttpRouteUrl' and no extension method 'HttpRouteUrl' accepting a first argument of type 'System.Web.Mvc.UrlHelper' could be found (are you missing a using directive or an assembly reference?)
作为参考,这是我用来帮助这部分项目的文章:


我非常感谢您的帮助(这与OpenGl和DirectX非常不同)

因为这是一个标准的MVC控制器操作,而不是ApicController操作,所以此控制器中的Url属性只是标准的

您可以使用以下选项:

public ActionResult Admin()
{
    string apiUri = Url.RouteUrl(
        "DefaultApi", 
        new { httproute = "", controller = "Values" }, 
        Request.Url.Scheme
    );
    ViewBag.ApiUrl = apiUri;
    return View();
}

请注意routeValues参数中使用的
httproute=“
”,以及指定协议参数如何生成绝对url,以便您无需通过创建新的
Uri
对象和内容进行调整。

因为这是标准MVC控制器操作,而不是ApiController操作,此控制器内的Url属性只是标准属性

您可以使用以下选项:

public ActionResult Admin()
{
    string apiUri = Url.RouteUrl(
        "DefaultApi", 
        new { httproute = "", controller = "Values" }, 
        Request.Url.Scheme
    );
    ViewBag.ApiUrl = apiUri;
    return View();
}

请注意routeValues参数中使用的
httproute=“
”,以及指定协议参数如何生成绝对url,以便您无需通过创建新的
Uri
对象和内容进行调整。

感谢Darin的响应,apiUri现在正在存储“”感谢Darin的响应,apiUri现在存储的是“”而不是null。