0

我有一张桌子

帖子(p_id,u_id(FK),日期,标题,类型,查看者)
和一个带有(p_id,u_id,日期,标题,类型)的模型类 UserModel.cs。当我在后控制器中创建新帖子时,我尝试过
公共 ActionResult 创建(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 的新手。请帮助我提前谢谢....

4

1 回答 1

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

于 2012-04-30T05:58:42.393 回答