Html.BeginForm 不会保留 Guid 集

Html.BeginForm Wont Keep Guid Set

我需要这方面的帮助。我已将代码全部设置为允许用户输入文本标题和文本 body,然后在数据库中为该条目留出一个 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 在 Url。

控制器

[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() 中放入什么。

谢谢。

我弄明白了,如果有人正在寻找这个,我想分享一下。

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

现在假设您想在提交内容时在 url 中显示 guid。

控制器动作结束时应该是

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

想想 URL 及其工作原理,重定向的返回值基本上会将所有内容按照它在 Url

中应有的样子放置

所以现在我的 url 是本地主机####/ControllerName/Action/Guid

如果您无法让 guid 显示在 Url

上,请尝试一下

谢谢