我需要帮助。我将所有代码设置为允许用户输入文本标题和文本正文,然后将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()。
谢谢。
答案 0 :(得分:0)
我想通了,如果有其他人在寻找这个,我想分享。
Guid由控制器设置(但我发现使用hmtl.Beginform没有区别)。
现在说你想在提交内容时在网址中显示guid。
在控制器操作结束时,它应该是
return RedirectAction("ActionName", "ControllerName", new {Id = Guid.NewGuid()}):
只要想一想网址及其工作原理,带有重定向的返回值基本上会按照它在Url中的显示方式放置所有内容
所以现在我的网址是localhost #### / ControllerName / Action / Guid
如果你无法让guid显示在Url上,请尝试一下
谢谢