#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 Активный
Он направляет меня к моему файлу 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, и посмотрю, что произойдет.