【问题标题】:Error CS0411 ASP.NET Core Web Application错误 CS0411 ASP.NET Core Web 应用程序
【发布时间】:2021-02-18 00:38:50
【问题描述】:

我目前正在为我的一个课程做一个项目,当我尝试运行它时突然收到此错误:

严重性代码描述项目文件行抑制状态 错误
CS0411 无法从用法中推断方法“IModelExpressionProvider.CreateModelExpression(ViewDataDictionary, Expression>)”的类型参数。尝试明确指定类型参数。 Proj1BankApp C:\Users\jross.000\source\repos\Proj1BankApp\Views\Home\Index.cshtml 1 活动

Visual Studio Screenshot

它会将我定向到我的 Index.cshtml 文件,但没有其他内容,我不知道如何修复它,因此我们将不胜感激。 索引.cshtml:

@model BankAppModel
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body style="height: 50px">
    <form id="form1" runat="server">
        <h1>@ViewBag.Title</h1>
        <div class="row">
            <label asp-for="Name" class="control-label col-sm-3">Name: </label>
            <input asp-for="Name" class="form-control col-sm-3" />
            <span asp-validation-for="@Model.Name" class="text-danger col"></span>
        </div>
        <div class="row">
            <label asp-for="TransactionMonth" class="control-label col-sm-3">Month: </label>
            <input asp-for="TransactionMonth" class="form-control col-sm-3" />
            <span asp-validation-for="@Model.TransactionMonth" class="text-danger col"></span>
        </div>
        <div class="row">
            <label asp-for="TransactionDay"class="control-label col-sm-3">Day: </label>
            <input asp-for="TransactionDay" class="form-control col-sm-3" />
            <span asp-validation-for="@Model.TransactionDay" class="text-danger col"></span>
        </div>
        <div class="row">
            <label asp-for="TransactionYear" class="control-label col-sm-3">Year: </label>
            <input asp-for="TransactionYear" class="form-control col-sm-3" />
            <span asp-validation-for="@Model.TransactionYear" class="text-danger col"></span>
        </div>
        <div class="row">
            <label class="control-label col-sm-3">Balance: </label>
            <input class="form-control col-sm-3" name="balance" readonly />
        </div>
        <div class="row">
            <input class="col offset-sm-3 pl-0" type="submit" name="deposit" value="Deposit" asp-for="Deposit" formmethod="post" />
            <input class="col offset-sm-3 pl-0" type="submit" name="withdraw" value="Withdraw" asp-for="Withdraw" formmethod="post" />
            <input class="btn btn-secondary" asp-action="Index" type="submit" name="clear" value="Clear" formmethod="post" />
        </div>
    </form>
</body>
</html>

【问题讨论】:

  • 您好,请将 CSHTML 内容添加为问题的一部分,而不是屏幕截图

标签: c# html asp.net asp.net-core


【解决方案1】:

这很可能在InputFor(m=&gt; m.Something)这样的行上

您调用的实际方法具有通用参数,例如Method&lt;T&gt;(T arg1, ..),编译器会尝试通过查看您传入的参数的类型(类)来推断它们。

例如:如果您将签名为Method&lt;T&gt;(T value) 的方法调用为Method("hi"),编译器会很聪明地判断出这实际上是Method&lt;string&gt;("hi")

但这并不总是有效,例如,如果参数的类型在编译时无法解析。

您可能必须在您的 cshtml 文件中找到此调用,然后手动添加类型 &lt;typehere&gt;,或者您的代码中可能存在不同的编译错误,导致编译器无法解析此类型。

尝试向下滚动到错误列表的底​​部,看看是否还有其他可以解决的错误。如果没有,请查找上述内容。

【讨论】:

  • 嗯,似乎只有两个相同的错误,它们都指向 Index.cshtml 文件中的第 1 行。我似乎也找不到与您描述的内容相关的任何内容。
  • 这可能是由于@ViewBag.Title.删除它,看看它是否修复。如果是这样,可能需要投射它。 @ViewBag.Title as string
  • asp-forasp.validation-for 也调用函数。也检查这些
  • 我只是尝试过,但它并没有改变任何东西,不幸的是。它曾经一度不这样做,所以我不知道发生了什么。
  • 哦,当然!我将尝试与 asp 相关的建议,看看会发生什么。
【解决方案2】:

在我的例子中,声明了一个隐藏的输入属性,它没有在模型类中声明,所以我删除了隐藏的输入并且错误消失了, 当您从另一个表单复制粘贴代码时会发生这种情况。比你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    相关资源
    最近更新 更多