我是Web开发的新手,在我的ASP.NET MVC-5项目中,我已经采取了一个接受GET请求的操作。我希望在控制台桌面应用程序上击中控制器的操作。以下是我的新手尝试。请引导我。
在我的控制器中,我在下面添加了操作
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: 是吗?还是我需要为我的控制台应用程序做一些奇特的事情来达到此操作方法。我需要创建一些Web API之类的东西吗?或以上代码可以正常工作?
问题2:如何通过桌面应用访问控制器操作。
我搜索了以下代码的写作:
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
附近变得弯曲。"等待方法只能在同步方法中使用。请帮助我。
MVC控制器具有MVC Web应用程序的定义行为。我认为您需要创建一个ASP.NET Web API项目,该项目使用o继承o的控制器,该控制器继承了基类apicontroller,并允许您做的比常规MVC应用程序控制器更多。两个可以帮助的链接:
开始使用ASP.NET Web API
https://learn.microsoft.com/en-us/aspnet/web-papi/web-api/overview/getting-started-with-with-aspnet-web-api/tutorial-your-your-first-web-api
从.NET客户端调用Web API
https://learn.microsoft.com/en-us/aspnet/web-api/overview/advanced/calling-a-web-api-from-a-net-client
希望它有帮助!