我是Win8和ASP.net开发的新手,我为缺乏清晰性或规格表示歉意,因为我是一名3D图形程序员,从事于开发ASP.net后端系统。目标是与目标Win8应用程序通信,以使用用户(Admin)通过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();
}这样我就可以启用到我的管理控制器的路由。但是,我在浏览器中得到了以下输出:
http://i.imgur.com/WX34S.png
我使用从internet下载的示例项目作为框架框架,因为它包含WebApiConfig.cs文件,而生成一个新的VS2012 ASP.NET MVC Web应用程序项目不包含该文件,我认为我需要它,因为我可以指定要序列化为JSON并删除XML格式。
我已经清除了bin中的.DLL文件,并清理了obj文件夹,以防它引用的对象不再存在。
我还创建了其他几个项目,其中一个项目使用向导生成的VS2012 MVC Web应用程序项目,它实现:
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?)作为参考,这是我用来帮助项目这一部分的文章:
http://www.asp.net/web-api/overview/creating-web-apis/using-web-api-with-entity-framework/using-web-api-with-entity-framework,-part-4
我感谢您的帮助(这与OpenGl和DirectX非常不同)
发布于 2012-09-26 10:15:45
由于这是一个标准的MVC控制器操作,而不是ApiController操作,因此该控制器中的Url属性只是标准的UrlHelper。
您可以使用以下内容:
public ActionResult Admin()
{
string apiUri = Url.RouteUrl(
"DefaultApi",
new { httproute = "", controller = "Values" },
Request.Url.Scheme
);
ViewBag.ApiUrl = apiUri;
return View();
}请注意在httproute = ""参数中使用的routeValues,以及指定协议参数是如何生成绝对url的,这样您就不需要通过创建新的Uri对象和其他东西来调整。
https://stackoverflow.com/questions/12599415
复制相似问题