gpt4 book ai didi

asp.net-mvc - 将字符串参数的 MVC View Intellisense 警告获取到通用方法

转载 作者:行者123 更新时间:2023-12-03 05:09:40 25 4
gpt4 key购买 nike

Visual Studio 的 Intellisense 了解哪些 View 文件可用。

如果我写这个(故意打字错误):

    [HttpGet]
public ActionResult Create()
{
return View("Craete", new KeywordViewModel());
}

然后它会提示,而不是在它下划线并说“无法解析 View ”。这太可爱了。

如果我想添加一个间接层,并通过另一个函数传递“Create”:

    [HttpGet]
public ActionResult Create()
{
return ArbitraryIndirection("Craete");
}

public ActionResult ArbitraryIndirection(string viewName)
{
return View(viewName, new KeywordViewModel());
}

然后我就失去了这种行为。 Intellisense 不知道 ArbitraryIndi​​rection 需要 View 目标,因此不会进行检查。这一点都不令人惊讶,但却令人悲伤

我可以教智能感知变得更聪明吗?

是否有什么东西告诉 Intellisence 该参数是特殊的(我猜可能是 XML 注释引用,或者属性?)或者它是否神奇地硬编码到 Intellisence 中?

我可以对间接 View 引用进行写入时错误检查吗?

最佳答案

我已经有一年左右没有这样做了,但当时是 ReSharper 巧妙地为我验证了观点。

如果您使用 ReSharper,则可以使用 JetBrains.Annotations 程序集中的 [AspMvcView] 属性 - 您可以通过 Nuget 包含该属性。相关指南出现在 jetbrains 网站上,链接如下:

https://blog.jetbrains.com/dotnet/2011/12/07/providing-intellisense-navigation-and-more-for-custom-helpers-in-aspnet-mvc/

下面是 [AspMvcAction][AspMvcController] 属性的示例用法(请注意,您需要使用 [AspMvcView] 属性,但我没有代码可以使用它)

    public static MvcHtmlString WidgetWrapperAction(this HtmlHelper<dynamic> html, [AspMvcAction] string action, [AspMvcController] string controller, object parameters)
{
var routeValueDictionary = new RouteValueDictionary(parameters) { { "area", "AreaName" } };
var htmlString = html.Action(action, controller, routeValueDictionary);
if (string.IsNullOrWhiteSpace(htmlString.ToHtmlString()))
{
htmlString = html.Action("WidgetLoadFailed", "WidgetLoadFailed", new RouteValueDictionary { { "area", "AreaName" } });
}
return htmlString;
}

希望这有帮助。

关于asp.net-mvc - 将字符串参数的 MVC View Intellisense 警告获取到通用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41554563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com