我在MVC 5中有一个新闻站点,我有一个名为Source的字段,用户不希望在dropdownList中拥有所有媒体的名称(因为它会有很多项目,所以有时他们想要保存媒体那不在dropdownList里面,他们想要保存它,我需要在dropdownList旁边有一个文本框,我需要一个机制来编辑文本框,如@Html.TextBox("SourceInput")
旁边的DropdownList里面的Edit方法,当我想要获取字符串虽然它来了,它已经在调试中看到,但在行中包含(ModelState.IsValid
)行返回false值,所以我无法保存更改
public ActionResult Edit(string SourceInput, [Bind(Include = "id,Source,DateM,Issue,Subject")] News_ news_)
{
if (ModelState.IsValid)
{
if (SourceInput != null) news_.Source = SourceInput; // SourceInput gets value but ModelState.IsValid prevents code to come here
db.Entry(news_).State = EntityState.Modified;
. . . . . .
db.SaveChanges();
return RedirectToAction("Index");
}
}
如果有人能帮助我,我感激不尽
坦克很多
托马斯
答案 0 :(得分:0)
我的一位朋友发送了这封信,并在他的指导下解决了我的问题: 嗨托马斯,
您可以删除DropDownList和Source字段的验证。然后,修改您的代码如下:
public ActionResult Edit(string SourceInput, string DropDownListSeletedValue [Bind(Include = "id,Source,DateM,Issue,Subject")] News_ news_)
{
if (ModelState.IsValid)
{
if (SourceInput != null) news_.Source = SourceInput; // SourceInput gets value but ModelState.IsValid prevents code to come here
else if (DropDownListSeletedValue != null)
... //using dropdownslit selected value
else
... //set default value
db.Entry(news_).State = EntityState.Modified;
. . . . . .
db.SaveChanges();
return RedirectToAction("Index");
}
}