0

私はテーブルを持っています

post(p_id,u_id(FK),日付,タイトル,タイプ,閲覧者)
および Modelclass UserModel.cs with(p_id,u_id,date,title,type)。ポストコントローラーで新しいポストを作成するときに、次のように試しました
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);
   }

それは働いていません。私が送信すると常にビューが返されます。私はストロンタイプの作成ビューを作成しました。create.cshtml には、2 つの非表示フィールド 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 に答える