C# 如何使没有编辑器字段的DB字段持久化
我有一个具有以下模式的数据库C# 如何使没有编辑器字段的DB字段持久化,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我有一个具有以下模式的数据库 public partial class staging { public int id { get; set; } public System.DateTime createtime { get; set; } [DataType(DataType.MultilineText)] public string general { get; set;
public partial class staging
{
public int id { get; set; }
public System.DateTime createtime { get; set; }
[DataType(DataType.MultilineText)]
public string general { get; set; }
public string articletype { get; set; }
}
我有两个视图创建和编辑。
在Create视图中,我正在更新general,但我正在从控制器更新文章类型,并保存一个数据库,如下所示
[HttpPost]
[ValidateInput(false)]
public ActionResult Create(staging staging)
{
staging.createtime = DateTime.Now;
staging.articletype = "Stage";
try
{
db.stagings.Add(staging);
db.SaveChanges();
}
catch (InvalidOperationException e)
{
ViewData["error"] = "An error has occured: " + e.Message;
return View(staging);
}
return RedirectToAction("Details/" + staging.id);
}
现在,我只有一个编辑字段用于“常规”。
因此,当我转到编辑视图页面时,我看到articletype具有适当的值,但当它返回到HttpPost的编辑时,articletype被设置为NULL,我认为这是因为我没有相同的编辑器字段。现在,当我从编辑控制器更新数据库时,它也被设置为NULL
那么,如何使该值在多个视图中持久化呢?我将只在控制器中的“创建事件”中进行更新,但我始终希望该值保持不变。ASP.NET MVC返回并解释通过HTTP请求发送的信息。必须从数据源(如数据库或会话变量)检索持久化数据,或从要为您持久化的视图从视图发回控制器。如何从视图发回值??当我检查model.articletype时,视图中只有Headline@Html.EditorFormodel=>model.general@Html.ValidationMessageFormodel=>model.general这样的编辑器字段。当暂存返回到控制器时,该值出现在视图中设置为空。我不知道如何将值输入model=>model。articletype@user3917144,使用仅包含编辑的特性的视图模型。在post方法中,根据ID从数据库获取数据模型,然后将视图模型属性映射到数据模型并保存数据模型。您可以在表单标记中添加@Html.HiddenFormodel=>model.articletype,但也可以在编辑操作中不更新该字段