MVC5剃刀值不能为null或为空。参数名称:名称

时间:2019-02-05 11:24:50

标签: c# asp.net-mvc razor

  

源错误:第22行:@ Html.TextBoxFor(model =>   model.DailyCurrencyRates ___ BuyingCurrency,新的{@id =“ test”,@class   =“ form-control”})

我在这个问题上停留了几天,无法解决此错误。我只想使用父类的项渲染局部视图。以下是我的代码:如果需要,请询问更多信息。

控制器

public ActionResult AddRecord(int index)
{
  return PartialView("_AddItem", new ForexItem { Index = index});
}

父视图

@foreach (ForexItem item in Model.ForexItems)
{
    Html.RenderPartial("_AddItem", item);
}

局部视图

@model F.Models.Entities.ForexItem

@Html.TextBoxFor(model => model.DailyCurrencyRates___BuyingCurrency, new { @id = "test", @class = "form-control" })

型号

public partial class ForexItem
 {
        public int ID { get; set; }

        [NotMapped]
        [StringLength(1000)]
        [Display(Name = "Buying")]
        public string DailyCurrencyRates___BuyingCurrency { get; set; }

        [NotMapped]
        public int Index { get; set; }
}

2 个答案:

答案 0 :(得分:1)

当我将模型属性名称中的下划线的数量从1增加到2时,我得到了同样模糊的,模糊的错误。请注意,LabelFor Helper的错误并没有直接在TextBoxFor helper之前发生,而是在TextBoxFor中发生帮手,和你一样。 (我注意到您的媒体资源名称(“ DailyCurrencyRates___BuyingCurrency”)有3个下划线。)然后,当我从媒体资源名称中删除了多余的下划线时,它就消失了。好像有了额外的下划线,Razor找不到属性名称,因此它只是搜索(通用)“名称”,也找不到。

答案 1 :(得分:0)

这可能是一个错字,但是在我看来您应该将Model.ForexItems更改为Model.ForexItem-否。根据您提交的代码。 …或也许只使用Model,因为您已经将ForexItem放入其中了?

父视图

@foreach (ForexItem item in Model)
{
    Html.RenderPartial("_AddItem", item);
}