如何更新我的页面详细信息?在c#中使用mvc5

时间:2017-07-28 14:18:47

标签: c# asp.net html5 ef-code-first asp.net-mvc-5

我想在同一表单上添加和更新问题。 Here is the "SAYFA EKLE" that form. It means "Add New Page"in english.

with(d1, Stimuli *ave(Stimuli, ID, FUN = cumsum))

这是我的添加动作。效果很好。

    public ActionResult Insert(Pages pages, string parent, string optactive) 

   {
    Pages pages_ = new Pages();

        pages_.pageName = pages.pageName;
        pages_.pageURL = pages.pageURL;
        if (optactive == "on") pages_.isActive = true;
        else pages_.isActive = false;
        pages_.orderNumber = pages.orderNumber;

        int parid = 0;
        try
        {
            parid = Convert.ToInt32(parent);
        }
        catch
        {

        }
        pages_.parentId = parid;

        if (parid == 0) pages_.levelNumber = 0;
        else
        {
            var partemp = db.Pages.Where(o => o.id == 
  parid).FirstOrDefault();
            if (partemp.levelNumber == 0) pages_.levelNumber = 1;
            else pages_.levelNumber = 2;
        }

  db.Pages.Add(pages_);
        db.SaveChanges();
        return Redirect(Url.Content("~/Page/"));
    }

这也是我的EditPost动作。我可以从数据库中检索数据以使用相同的表单。

    [HttpGet]
    private ActionResult EditPost(string pageId)
    {

        var id = Convert.ToInt32(pageId);  //Edit Action
        var tmppage = db.Pages.Where(o => o.id == id).First();
        ViewBag.tmppage = tmppage;
        ViewBag.pages = returnPages();

        return View("Index");
    } 

也是我的观点。那我怎样才能更新我的记录?此外,我首先从数据库使用实体框架工作代码。我真的很擅长编码。如果你帮我完成我的实习项目,我会很高兴的。

1 个答案:

答案 0 :(得分:-1)

首先。你完全错过了MVC原则。尝试阅读更多内容。

如果您在视图中使用表单和模型,则在执行操作之前需要[HttpPost]。

[HttpPost]   // this 
public ActionResult Insert (Pages pages) 
{
        Pages pages_ = new Pages();
        ....

你的get方法可以接受int值,你为什么要使用string?

[HttpGet]
private ActionResult EditPost(int? pageId)
{
    if (pageId == null) 
        ...do somrthing;

    ViewBag.tmppage = db.Pages.FirstOrDefault(o => o.id == pageId); 
    ViewBag.pages = returnPages();

    return View("Index");
}

你的观点有一个模型,你的案例中有哪些页面。和FORM标签应该看起来不同。

   @model Pages // your first line in the view
   ...
   <form asp-action="Insert" asp-controller="Pages">
       <input asp-for="pageName" class="" />
       <input asp-for="isActive" class="" />
       .... and etc.

这只是部分答案。只需花一点时间阅读文档。不过,我建议您观看这些视频,它们很短但非常适合您。

https://www.youtube.com/playlist?list=PLYMOUCVo86jFPCV6_u2m8P2NE2LSijvLN