在asp.net mvc3中插入数据失败

时间:2012-04-30 05:48:44

标签: asp.net-mvc-3

我有一个表

 post(p_id,u_id(FK),date,title,type,viewer)
和一个带有(p_id,u_id,日期,标题,类型)的Modelclass UserModel.cs。当我在帖子控制器中创建一个新帖子时我试过
 public ActionResult Create(PostModel p)
        { 

        if (ModelState.IsValid)
        {
          p.date =  DateTime.Today;
          post post = new Models.DB.post();
          post.u_id = User.Identity.Name;
          post.date = p.date;
          post.title = p.title;
          post.type= p.type;
          post.viwer=1;

          try{      db.posts.AddObject(post);
                db.SaveChanges();
         return RedirectToAction("LoggedIndex");
         }
        catch{ return RedirectToAction("Index"); }
      }
    return View(p);
   }

它没有工作。我认为从提交时不提交始终返回视图。我已经创建了stronly类型的创建视图。在create.cshtml中,我有两个隐藏字段user_id和postModel对象的日期。我是MVC的新手。请事先帮助我...

1 个答案:

答案 0 :(得分:0)

使用MVC模型将数据从视图发送到控制器

我理解为:你有一个mvc3页面,想要向控制器发送一些自定义数据:

<强>控制器:

[http-post]
    public ActionResult Create(PostModel p)
        { 
        if (ModelState.IsValid)
        {
          p.date =  DateTime.Today;
          post post = new Models.DB.post();
          post.u_id = User.Identity.Name;
          post.date = p.date;
          post.title = p.title;
          post.type= p.type;
          post.viwer=1;

                db.posts.AddObject(post);
                db.SaveChanges();
         return RedirectToAction("LoggedIndex");
      }
    return View(p);
   }

public ActionResult Create()
        { 

    return View(new post());
   }

查看:

@model post

@using (Html.BeginForm("Create", "Controller-Name", FormMethod.Post, new { id = "FORM" }))
{
 @Html.EditorFor(model => model.date)

 @Html.EditorFor(model => model.name)

 @Html.EditorFor(model => model.title)

 @Html.EditorFor(model => model.type)
}

更多信息:http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx