Ссылка на объект не указывает на экземпляр объекта

357
21 марта 2017, 10:31

Дальше отправляем и получаем ошибку:

Но, в бд сохраняется запись и при следующем запуске мы можем её видеть:

Reviews.cshtml:

<script src="~/scripts/CommentsAjax.js" type="text/javascript"></script> 
 
<form onsubmit="return false" action="/Home/Reviews" method="POST"> 
    <fields> 
        <p>Оставьте отзыв :)</p> 
        <input type="text" name="Name" id="name" placeholder="Введите ваше имя" required /><br /> 
 
        <input type="text" name="Comment"  id="comment"  required  /><br /> 
 
        <input type="submit" /> 
    </fields> 
</form> 
@foreach (var b in ViewBag.UserComments) 
{ 
    <hr/> 
        <p>@b.UserName</p> 
        <p>@b.UserText</p> 
    <hr/> 
}

HomeController.cs:

  public class HomeController : Controller
    {
        CommentContext db = new CommentContext();
        public ActionResult Index()
        {
            return View();
        }
        [HttpGet]
        public ActionResult Reviews()
        {
            IEnumerable<UserComments> comments = db.UserComments;
            ViewBag.UserComments = comments;

            return View(db.UserComments);
        }
        [HttpPost]
        public ActionResult Reviews(string Name,string Comment)
        {
            UserComments user = new UserComments
            {
                UserName = Name,
                UserText = Comment,

            };
            db.UserComments.Add(user);
            db.SaveChanges();
            return View();
        }
        protected override void Dispose(bool disposing)
        {
            db.Dispose();
            base.Dispose(disposing);
        }
    }

CommentAjax.js:

$(document).on('submit', 'form', function () { 
 
    var UserName = $('input[name=Name]').val(); 
    var UserComment = $('input[name=Comment]').val(); 
   
 
    SubmitForm(UserName, UserComment); 
         
 
}); 
 
function SubmitForm(name, comment) { 
 
    $.ajax({ 
        method: "POST", 
        url: "/Home/Reviews", 
        data: { Name: name, Comment: comment } 
    }) 
  
   .done(function () { 
       alert("Спасибо за отзыв "); 
   }).fail(function () { 
       alert("Ошибка" ); 
   }); 
    
}
БД:

Как это можно исправить ?

Answer 1

Представление Reviews ожидает назначенный ViewBag.UserComments:

[HttpPost]
public ActionResult Reviews(string Name,string Comment)
{
    UserComments user = new UserComments
    {
        UserName = Name,
        UserText = Comment,
    };
    db.UserComments.Add(user);
    db.SaveChanges();
    ViewBag.UserComments = db.UserComments; // !!!
    return View();
}
READ ALSO
Конвертирование из object в long

Конвертирование из object в long

Что я делаю не так:

367
Ошибка system.nullreferenceexception

Ошибка system.nullreferenceexception

Подскажите пожалуйста в чём ошибкаПытаюсь использовать рекурсивный метод на самодельном односвязном списке, но появляется ошибка System

330
Не выводится изображение

Не выводится изображение

Взял код с официального сайта и он не работает (убрал немного лишнего);

290