Ошибка CS0411 ASP.NET Основное веб-приложение

#c# #html #asp.net #asp.net-core

#c# #HTML #asp.net #asp.net-ядро

Вопрос:

В настоящее время я работаю над проектом для одного из своих классов, и я внезапно получил эту ошибку, когда попытался ее запустить:

Описание кода серьезности Ошибка состояния подавления строки файла проекта
CS0411 Аргументы типа для метода ‘IModelExpressionProvider.CreateModelExpression<tModel, TValue>(ViewDataDictionary, Выражение<Функция<tModel, TValue>>)’ не может быть выведено из использования. Попробуйте явно указать аргументы типа. Proj1BankApp C:Usersjross.000sourcereposProj1BankAppViewsHomeIndex.cshtml 1 Активный

Снимок экрана Visual Studio

Он направляет меня к моему файлу Index.cshtml, но ничего больше, и я не знаю, как это исправить, поэтому буду признателен за любую помощь. Index.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>
 

Комментарии:

1. Привет, пожалуйста, добавьте содержимое CSHTML как часть вопроса, а не скриншот

Ответ №1:

В моем случае было объявлено свойство скрытого ввода, которое не было объявлено в классе модели, поэтому я удалил этот скрытый ввод, и ошибка исчезла, это происходит, когда вы копируете вставляете код из другой формы. чем вы.

Ответ №2:

Скорее всего, это строка типа InputFor(m=> m.Something)

Фактический вызываемый вами метод имеет общие аргументы, например Method<T>(T arg1, ..) , и компилятор пытается вывести их, просматривая типы (класс) передаваемых вами аргументов..

например: если вы вызываете метод с сигнатурой Method<T>(T value) , поскольку Method("hi") компилятор достаточно умен, чтобы понять, что это на самом деле Method<string>("hi")

Но это не всегда работает, например, если тип аргумента не может быть изменен во время компиляции.

Вероятно, вам придется найти этот вызов в вашем файле cshtml и либо добавить тип <typehere> вручную, либо в вашем коде может быть другая ошибка компиляции, которая не позволяет компилятору разрешить этот тип.

Попробуйте прокрутить вниз до конца списка ошибок и посмотреть, есть ли какие-либо другие ошибки, которые вы можете устранить. Если нет, посмотрите выше.

Комментарии:

1. Хм, похоже, есть только две одинаковые ошибки, и обе они указывают на строку 1 в файле Index.cshtml. Я также не могу найти ничего, связанного с тем, что вы описали.

2. это может быть связано с @ViewBag.Title .Удалите его и посмотрите, исправит ли он. Если это так, возможно, потребуется его выполнить. @ViewBag.Title as string

3. asp-for а asp.validation-for также вызывает функции. Проверьте их также

4. Я только что попробовал это, и, к сожалению, это ничего не изменило. Раньше это не делало этого в какой-то момент, поэтому я не знаю, что произошло.

5. О, конечно! Я попробую предложение, связанное с asp, и посмотрю, что произойдет.