2017-04-14 298 views
0

我是新來web開發和我的ASP.Net MVC-5項目,我做了一個接受get請求的動作。我想要在控制檯桌面應用程序上點擊我的控制器的動作。以下是我的新手嘗試。請指導我。創建控制檯應用程序客戶端來訪問控制器動作ASP.NET MVC 5

在我的控制,我添加以下措施

public class SecurityController : BaseController 
    { 
     [HttpGet] 
     public ActionResult CacheClear(TestMV viewModel) 
     { 
      // SOME CODE 
      return View(); 
     } 
} 

我TestMV

public class TestMV 
{ 
    public int locationId { get; set; } 
} 

現在,當我去到瀏覽器並輸入http://localhost:5271/Security/CacheClear/?locationId=28463我能夠命中斷點和我我能夠捕捉到價值。

問題1: 是嗎?或者我需要爲我的控制檯應用程序打一些花哨的東西來打這個Action方法。我是否需要創建一些Web API或其他?或上面的代碼將正常工作?

問題2:如何通過桌面應用訪問Controller操作。

我GOOGLE了寫下面的代碼:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace ConsoleApplication2 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      System.Net.Http.HttpClient client = new System.Net.Http.HttpClient(); 
      client.BaseAddress = new Uri("http://localhost:5271/"); 
      client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); 
      var resp2 = await client.GetAsync("Security/CacheClear/?locationId=28463"); 
      resp2.EnsureSuccessStatusCode(); 
     } 
    } 
} 

有人能指導我,如果我在正確的方向我要去。我需要在代碼中做出什麼改變才能實現結果。另外,我在await client.GetAsync附近變得越來越彎曲。 「等待方法只能在同步方法中使用,請幫助我。

回答

0

MVC控制器具有MVC Web應用程序的定義行爲。我認爲你需要它創建一個ASP.NET Web Api項目,它使用控制器擴展Ø繼承基類ApiController,並允許你做的比普通的MVC應用程序控制器的二鏈接,這將有助於:

入門ASP.NET網頁API

https://docs.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api

調用網絡API來自.NET客戶端

https://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/calling-a-web-api-from-a-net-client

希望它有幫助!

相關問題