0

私はWin8とASP.netの開発にかなり慣れていません。私は、3Dグラフィックプログラマーであり、ASP.netバックエンドシステムの開発を引き受けているため、明確さや仕様が不足していることをお詫びします。目標は、ターゲットのWin8アプリと通信して、ユーザー(管理者)がASP.netWebサイトを介して入力したデータを消費することです。

私は、新しい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

WebApiConfig.csファイルが含まれているためスケルトンフレームワークとしてインターネットからダウンロードしたサンプルプロジェクトを使用していますが、新しいVS2012 ASP.NET MVC Webアプリケーションプロジェクトの生成にはこのファイルが含まれておらず、そのまま必要だと思いますJSONとしてシリアル化し、XMLフォーマットを削除することを指定できるポイント。

bin内の.DLLファイルをクリーンアップし、存在しないオブジェクトを参照している場合に備えてobjフォルダーをクリーンアップしました。

私が作成した他のいくつかのプロジェクトがあります。1つはウィザードから生成されたVS2012MVCWebアプリプロジェクトを使用し、以下を実装します。

 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とは大きく異なります)

4

1 に答える 1

3

これは標準のMVCコントローラーアクションであり、ApiControllerアクションではないため、このコントローラー内のUrlプロパティは単なる標準のUrlHelperです。

次を使用できます。

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

これはrouteValuesパラメータで使用されていることに注意してください。また、プロトコル引数を指定すると絶対URLが生成されるため、新しいオブジェクトなどhttproute = ""を作成して微調整する必要はありません。Uri

于 2012-09-26T10:15:45.953 に答える