现在,我从Visual Studio 2015提供的默认ASP.NET核心Web应用程序项目模板开始,包括对单个用户帐户的身份验证。
大多数(如果不是所有)生成的控制器都返回视图,通常遵循以下模式:
[HttpGet]
[AllowAnonymous]
public IActionResult Get()
{
//Do something smart
return View();
}
此方法返回一个您可以看到的视图,当web客户机请求时,一切都很好。但是如果游戏正在向相同的方法发送请求呢?在这种情况下,需要一个JSON响应(不是view/html文档),我的问题是在ASP.NET核心中支持这个的推荐“模式”是什么?
当返回类型为IActionResult时,还可以返回Json消息,例如return Json(myReturnObject)
。您可以添加if
来返回JSON消息,当消息为false时,它将返回视图。
您可以根据x-requested-with
添加if:
if (Request.Headers["X-Requested-With"] == "XMLHttpRequest")
{
return Json(myObject);
}
我建议按响应类型在不同的控制器方法中拆分请求,并将共享代码/逻辑添加到一个私有方法或另一个类中,您可能也会在其他地方使用此方法。通过这样做,您将能够进行适当的测试,并且不会混淆何时返回视图或json消息。
知道如何正确设置控制器描述吗? 谢谢,马里奥
问题内容: 我已经阅读了一段时间,发现可以使用以下命令调用控制器操作: 这是否意味着我应该将MicrosoftMvcAjax.js或MicrosoftAjax.js与Jquery库一起添加? 另外,第二个参数应在$ .ajax()函数中包含什么? 最后,在stackoverflow内或站点外部是否有其他链接可能对带ajax和jquery的asp.net mvc有帮助? 谢谢。 问题答案: 您可以从
但是,由于不支持webforms,我无法将控件添加到WebForm中。 是否有其他可能帮助我在ASP.NET Core Web应用程序中使用ReportViewer控件的解决方法?
问题内容: 我想使用Redis功能,例如MVC控制器中的位字段和哈希字段。我知道ASP.NET核心中内置了缓存支持,但这仅支持基本的GET和SET命令,而不支持我的应用程序中所需的命令。我知道如何从普通(例如控制台)应用程序中使用StackExchange.Redis,但是我不确定如何在ASP站点中进行设置。 我应该将所有连接初始化代码放在哪里,以便以后可以从控制器访问它?这是我将使用依赖项注入的