我收到了这个错误 错误2无法从用法推断出方法'System.Web.Mvc.Html.ValidationExtensions.ValidationMessageFor(System.Web.Mvc.HtmlHelper,System.Linq.Expressions.Expression>)'的类型参数。尝试显式指定类型参数。
在我的视图中使用以下代码
index.cshtml
<div>
@for (int i = 0; i < Model.CartItems.Count; i++)
{
<p>
@Html.ValidationMessageFor(model => model.CartItems[i].Count) <== error here
</p>
}
</div>
我在同一视图中的代码中也出错了 错误3无法从以下方法推断出方法'System.Web.Mvc.Html.InputExtensions.TextBoxFor(System.Web.Mvc.HtmlHelper,System.Linq.Expressions.Expression&gt;,System.Collections.Generic.IDictionary)'的类型参数用法。尝试显式指定类型参数。
@{int ix = 0;}
@foreach (var item in Model.CartItems)
{
<tr id="row-@item.ProduitId">
<td>
@Html.ActionLink(item.Produit.Description, "Details", "Produit", new { id =
item.ProduitId }, null)
</td>
<td>
@item.Produit.Prix
</td>
<td>
@Html.TextBoxFor(model => model.CartItems[ix].Count, <=== error here
new {style = "width:30px; text-align:right;",
onkeyup = "clearUpdateMessage();",
onchange = "clearUpdateMessage();"
})
</td>
<td>
<a href="#" class="RefreshQuantity" data-id="@item.PanierId"
txt-id="CartItems_@(ix)__Count">Refresh quantity</a> | /a>
</td>
<td>
<a href="#" class="RemoveLink" data-id="@item.PanierId"> Enlever du panier >>
</a>
</td>
</tr>
ix++;
}
Panier.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
namespace Tp1WebStore3.Models
{
public partial class Panier
{
[Key]
public int PanierId { get; set; }
public int ProduitId { get; set; }
[Required(AllowEmptyStrings = true, ErrorMessage = " ")]
[Range(0, 100, ErrorMessage = "Quantité doit être entre 0 and 100")]
[DisplayName("Quantité")]
public int Quantite { get; set; }
public System.DateTime DateCree { get; set; }
public string CartId { get; set; }
public decimal Prix { get; set; }
public virtual Produit Produit { get; set; }
}
}
答案 0 :(得分:0)
我终于找到了问题
宣言应该是这样的:@ Html.ValidationMessageFor(model =&gt; model.CartItems [i] .Quantite)
@ Html.TextBoxFor(model =&gt; model.CartItems [ix] .Quantite,