2016-04-30 8 views
0

ムービー評価Webアプリケーションを作成していますが、オブジェクト参照がオブジェクトのインスタンスに設定されていないというエラーが発生しました。評価ページに戻ったときにそのエラーが表示されても、評価が追加されました。ASP.Netはエラーをスローしますが、データを投稿します

Contoller:

public ActionResult RateMedia(string Item, int Rate) 
    { 
     PopMediaDDL(); 
     var userStore = new UserStore<ApplicationUser>(ldb); 
     var manager = new UserManager<ApplicationUser>(userStore); 
     var user = manager.FindById(User.Identity.GetUserId()); 
     MediaRating rate = new MediaRating(); 
     rate.Title = ldb.MediaData.First(c => c.MediaName == Item); 
     rate.Rating = Rate; 
     rate.RateFor = user; 
     ldb.MediaRatingData.Add(rate); 
     ldb.SaveChanges(); 
     return View(); 
    } 

モデル:

public class MediaRating 
{ 
    [Key] 
    public int MediaRatingID { get; set; } 
    public virtual ApplicationUser RateFor { get; set; } 
    public virtual Media Title { get; set; } 
    public int Rating { get; set; } 
} 

ビュー:

 @using CollectionCompanion.Extensions 
    @using CollectionCompanion.Models; 
    @model CollectionCompanion.Models.UserCollectionItem 
    <h2>Rate Media!</h2> 
    <hr /> 
    @using (Html.BeginForm()) 
    { 
    <div style="width:80%;"> 
    <div id="AddColItem"> 
     @Html.AntiForgeryToken() 
     @Html.TextBoxFor(m => m.Item, new { @id = "MediaItem",@style=   "color:black;", @name = "MediaItem", @class = "form-control" }) 
    </div> 
    <div id="AddColDD"> 
     <select id="Rate" name="Rate"> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
      <option value="4">4</option> 
      <option value="5">5</option> 
     </select> 
    </div> 
    <div id="AddColBTN"> 
     <input type="hidden" name="UserCollection" value="@ViewBag.UserCollectionID" /> 
     <button type="submit" class="btn btn-default btn-info"><span class="glyphicon glyphicon-plus"></span> Add</button> 
    </div> 
</div> 

}

@foreach (MediaRating rating in ViewBag.Ratings) 
    { 
    <div> 
    <div style="width:50%;"> 
     @rating.Title.MediaName 
    </div> 
    <div style="width:50%"> 
     @rating.Rating 
    </div> 
    </div> 
    } 
    <script type="text/javascript"> 
    $("#MediaItem").autocomplete({ 
    change: function (event, ui) { }, 
    source: "../../Media/GetMediaResult/", 
    minLength: 2 

    } 
    ); 
    </script> 

答えて

0

あなたのコントローラのアクションの最後にモデルなしでビューを返すされています

return View(); 

私はあなたがモデルやビューを移入するために必要なViewBagを提供していないので、あなたがnull参照の例外を取得していると思われます。最初の場所でViewを構築するために必要なすべてのものを提供しているので、HttpGetコントローラのアクションと似ているはずです。

関連する問題