在学习 ASP.NET MVC 的过程中,我遇到了一个问题并遇到了一些麻烦
我正在尝试创建一个简单的博客,只是为了测试我到目前为止所学到的东西。但是在编辑和离开字段时,我遇到了问题。
我正在尝试在我的博客上编辑已提交的帖子,该帖子包含几个字段:ID、标题、消息、作者和提交日期,不应编辑,保持原样。
这是一些代码:
我的帖子模型:
namespace MyBlock.Models
{
public class Post
{
public int Id { get; set; }
[Required]
public string Author { get; set; }
[Required]
public string Headline { get; set; }
[Required]
public string Message { get; set; }
public DateTime Date { get; set; }
}
}
我的编辑:
[HttpGet]
public ActionResult Edit(int id = 0)
{
Post post = db.Posts.Find(id);
if (post != null) {
return View(post);
}
return HttpNotFound();
}
[HttpPost]
public ActionResult Edit(Post post)
{
if (ModelState.IsValid) {
db.Entry(post).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index", "Home");
}
return View(post);
}
我的编辑观点:
@model MyBlock.Models.Post
@{
ViewBag.Title = "Edit";
}
<h2>Rediger "@Model.Headline"</h2>
@using (Html.BeginForm()) {
@Html.LabelFor(u => u.Author)
@Html.TextBoxFor(u => u.Author)
@Html.LabelFor(u => u.Headline)
@Html.TextBoxFor(u => u.Headline)
@Html.LabelFor(u => u.Message)
@Html.TextAreaFor(u => u.Message)
<input type="submit" value="Gem" />
}
我知道我可以输入一个@HiddenFor(u => u.Date)
并且将提交相同的日期。但我敢打赌,除了将其作为源代码中的隐藏字段之外,还有另一种方法吗?我的意思是在另一个例子中这不是那么安全吗?所以我想要这里的隐藏字段以外的东西。你们能帮帮我吗?
如果我尝试按原样运行它。我收到一个错误,即我的日期未设置,这是合乎逻辑的,因为它也想更新该日期。但我不希望它。如果你能这么说,我想把它留作可选。