フォームを使用してデータベースに更新したばかりのデータを呼び出すときにエラーが発生します。
Visual Studio Express 2010 MVC3 Razorを使用しています(すべての形式の開発に非常に慣れていません)。フォームに入力し、テキストボックス内のテキストをテーブルに正常に保存している更新ボタンをクリックしましたが、別のページでそのデータを表示しようとすると、次のエラーが発生します。
NullReferenceException was unhandled by user code.
Object reference was not set to an instance of an object.
これはほとんどの人にとって明らかなことだと思いますが、私が何を間違えたのかはわかりません。
noobの助けに感謝します、どうもありがとう。
================================================== ================================
「ビュー」のコードは次のとおりです。
@model IEnumerable<bhgc.Models.Data>
@{
ViewBag.Title = "Special Offers";
}
<fieldset>
<legend><h1>Special Offers</h1></legend>
@foreach (var data in Model)
{
<table>
<tr>
<td>
<strong>
@Html.Raw(data.offer1.Replace(Environment.NewLine, "<br/>"))
</strong>
</td>
<td>
<strong>
@Html.Raw(data.offer2.Replace(Environment.NewLine, "<br/>"))
</strong>
</td>
</tr>
<tr>
<td>
<strong>
@Html.Raw(data.offer3.Replace(Environment.NewLine, "<br/>"))
</strong>
</td>
</tr>
</table>
}
</fieldset>
================================================== ================================
コントローラーはここにあります:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Data.Entity;
using bhgc.Models;
namespace bhgc.Controllers
{
public class HomeController : Controller
{
private DataDBContext db = new DataDBContext();
public ActionResult Index()
{
return View(db.Data.ToList());
}
public ActionResult Special()
{
return View();
}
public ActionResult Contact()
{
return View();
}
}
}
================================================== ================================
データベースから読み取るコントローラー:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using bhgc.Models;
namespace bhgc.Controllers
{
[Authorize] //Created Validataion so inaccessible from outside
public class DataController : Controller
{
private DataDBContext db = new DataDBContext();
//
// GET: /Data/
public ViewResult Index()
{
return View(db.Data.ToList());
}
//
// GET: /Data/Details/5
public ViewResult Details(string id)
{
Data data = db.Data.Find(id);
return View(data);
}
//
// GET: /Data/Update
public ActionResult Update()
{
var model = db.Data.FirstOrDefault();
return View(model);
}
//
// POST: /Data/Update
[HttpPost]
[ValidateInput(false)]
public ActionResult Update(Data data)
{
if (ModelState.IsValid)
{
data.ID = 1; //EF need to know which row to update in the database.
db.Entry(data).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Special", "Home");
}
return View(data);
}
}
}