2016-07-02 1 views
0

Я запускаю приложение в этом Microsoft Tutorial и когда я пытаюсь ввести URL-адрес в поле ввода приложения (например, http://msdn.com или http://blogs.msdn.com/adonet, как показано в руководстве) и нажмите на кнопку отправить, я получаю следующее сообщение об ошибке проверки:Ошибка ASP.NET Core tutorial «Значение« http://msdn.com »недействительно для Url

The value 'http://msdn.com' is not valid for Url. 

Когда я отладки приложения, я замечаю, что в следующем коде урока величина ModelState.IsValid отображается как «ложь». Что здесь отсутствует и как его можно исправить?

public IActionResult Create(Blog blog) 
     { 
      if(ModelState.IsValid) 
      { 
       _context.Blogs.Add(blog); 
       _context.SaveChanges(); 
       return RedirectToAction("Index"); 
      } 

      return View(blog); 
     } 

Очки, чтобы отметить:

  1. Я использую последнюю ASP.NET Ядра 1.0 и VS2015-Update 3 [выпущен 27 июня 2016 года] на окнах 8.1
  2. В Creat.chtml вид учебника, <input asp-for="Url" class="form-control" /> изначально показывался как только для чтения, поэтому я добавил атрибут type = "text" и стал читать/писать
  3. Мое приложение является точной копией учебника (я копировал/прошёл), кроме что вместо того, Нет аутентификации «Я выбрал« Индивидуальные учетные записи пользователей »при создании порога. Но это, я думаю, не должно иметь никакого значения.

UPDATE

Я добавил var errors = ModelState.Values.SelectMany(v => v.Errors); чуть выше if(ModelState.IsValid) заявление, и я вижу следующее в окне отладки, показывая значения error collection но не могу понять причину ошибки. Может быть. кто-то может помочь:

UPDATE 2:

Я нашел свою ошибку. Я использовал int datatype в свойстве public int Url { get; set; } класса Blog вместо использования строки. Изменил его на строку, и теперь он работает. Кто-то может помочь, что говорит ошибка в изображении.

enter image description here

+0

Что говорит ошибка в «Моделировании»? Вы можете просмотреть все сведения об ошибке - вот как: http://stackoverflow.com/questions/1352948/how-to-get-all-errors-from-asp-net-mvc-modelstate – PeteGO

+0

У вас есть @model EFGetStarted.AspNetCore.NewDb.Models.Blog' вверху? – prospector

+0

@prospector Да, у меня есть то, что сверху, и оно также распознается intellisense. – nam

ответ

1

я решил проблему. Произошла ошибка с моей стороны. Я использовал тип данных int в собственности public int Url { get; set; } класса Blog. Изменил его на строку. Затем удалите базу данных в SQL Server и соответствующую папку миграции в проекте. Перезапустите команды менеджера пакетов Add-Migration MyFirstMigration -context BloggingContext и Update-Database -context BloggingContext. Теперь работает. Хотя приложение было копией/вставкой из этого Microsoft Tutorial, позже я попытался проверить создание свойства с помощью короткого ключа как explained here, но забыл, что короткий ключ создает тип данных как int. Спасибо всем читателям, которые, возможно, пытались помочь.

Смежные вопросы