Html.BeginForm不会保持Guid Set

时间:2015-09-02 21:07:39

标签: c# guid html.beginform

我需要帮助。我将所有代码设置为允许用户输入文本标题和文本正文,然后将guid放在数据库中的该条目中。

问题是guid更改并且文本输入框变为空白,并且每次按下提交按钮时它都需要保持不变。我的想法是我应该使用Html.BeginForm()来完成任务。请让我知道你的想法。

html代码

@using (Html.BeginForm("ACTION", "CONTROLLER", FormMethod.Post, new{Id, title, body}))

现在我知道了

new {id}

应该是

new{Id= Guid.NewGuid()}

但是我需要控制器分配guid并保持设置,然后让BeginForm显示文本框中带有guid的文本框中的内容。

控制器

[HttpPost]
    public ActionResult ACTION(NamedModel item)
    {

        if (ModelState.IsValid)
        {
            using (DB.DatabaseEntities db = new DB.DatabaseEntities())
            {

            DB.Model newRecord = new DB.Model();
            newRecord.Title = item.Title;
            newRecord.Body = item.Body;
            newRecord.NamedId = Guid.NewGuid();
            db.Models.Add(newRecord);
            db.SaveChanges();
        }

        }
        return View(item);

我基本上需要知道我应该把什么放进BeginForm()。

谢谢。

1 个答案:

答案 0 :(得分:0)

我想通了,如果有其他人在寻找这个,我想分享。

Guid由控制器设置(但我发现使用hmtl.Beginform没有区别)。

现在说你想在提交内容时在网址中显示guid。

在控制器操作结束时,它应该是

return RedirectAction("ActionName", "ControllerName", new {Id =     Guid.NewGuid()}):

只要想一想网址及其工作原理,带有重定向的返回值基本上会按照它在Url中的显示方式放置所有内容

所以现在我的网址是localhost #### / ControllerName / Action / Guid

如果你无法让guid显示在Url上,请尝试一下

谢谢