modelstatedictionary不包含违规地址的定义



当试图在DinnerController.cs中构建NerdDinner时,我得到了两个错误。以下是我目前在DinnerController.cs中的内容。我在'**'

的两行上得到错误
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; 
using System.Web.Mvc;
using NerdDinner.Models;

namespace NerdDinner.Controllers
{
public class DinnersController : Controller
{
    DinnerRepository dinnerRepository = new DinnerRepository();
    //
    // GET: /Dinners/
    public ActionResult Index()
    {
        var dinners = dinnerRepository.FindUpcomingDinners().ToList();
        return View(dinners);
    }
    //
    // GET: /Dinners/Details/2
    public ActionResult Details(int id)
    {
        Dinner dinner = dinnerRepository.GetDinner(id);
        if (dinner == null)
            return View("NotFound");
        else
            return View(dinner);
    }
    //
    // GET: /Dinners/Edit/2
    public ActionResult Edit(int id)
    {
        Dinner dinner = dinnerRepository.GetDinner(id);
        return View(dinner);
    }
    //
    // POST: /Dinners/Edit/2
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Edit(int id, FormCollection formValues)
    {
        Dinner dinner = dinnerRepository.GetDinner(id);
        try
        {
            UpdateModel(dinner);
            dinnerRepository.Save();
            return RedirectToAction("Details", new { id = dinner.DinnerID });
        }
        catch
        {
            **ModelState.AddRuleViolations(dinner.GetRuleViolations());
            return View(dinner);
        }
    }
    //
    // GET: /Dinners/Create
    public ActionResult Create()
    {
        Dinner dinner = new Dinner()
        {
            EventDate = DateTime.Now.AddDays(7)
        };
        return View(dinner);
    }
    //
    // POST: /Dinners/Create
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Create(Dinner dinner)
    {
        if (ModelState.IsValid)
        {
            try
            {
                dinner.HostedBy = "SomeUser";
                dinnerRepository.Add(dinner);
                dinnerRepository.Save();
                return RedirectToAction("Details", new { id = dinner.DinnerID });
            }
            catch
            {
                ** ModelState.AddRuleViolations(dinner.GetRuleViolations());
            }
        }
        return View(dinner);
    }
    //
    // HTTP GET: /Dinners/Delete/1
    public ActionResult Delete(int id)
    {
        Dinner dinner = dinnerRepository.GetDinner(id);
        if (dinner == null)
            return View("NotFound");
        else
            return View(dinner);
    }
    //
    // HTTP POST: /Dinners/Delete/1
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Delete(int id, string confirmButton)
    {
        Dinner dinner = dinnerRepository.GetDinner(id);
        if (dinner == null)
            return View("NotFound");
        dinnerRepository.Delete(dinner);
        dinnerRepository.Save();
        return View("Deleted");
    }
}
}

您是否在助手目录中创建了如下所示的Nerd Dinner Helper类?我想我在那个阶段就有这个问题了。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using NerdDinner.Models;
namespace NerdDinner.Helpers {
    public static class ModelStateHelpers {
        public static void AddModelErrors(this ModelStateDictionary modelState, IEnumerable<RuleViolation> errors) {
            foreach (RuleViolation issue in errors) {
                modelState.AddModelError(issue.PropertyName, issue.ErrorMessage);
            }
        }
    }
}

最新更新