我有一个工作提交按钮,所以当我对表单进行更改并单击提交表单更新时... ...
但是。在数据库中,它显示了新数据。但是当我将RedirectToAction重定向到最后一页时,它并没有显示更新的数据。
这是我的代码(Controller):
[HttpPost]
public ActionResult Save(M2Portal.Areas.Admin.Models.Users.Roles roleForm)
{
try
{
if (ModelState.IsValid)
{
var role = Srvctx.Roles.FirstOrDefault(w => w.RoleID == roleForm.RoleId);
role.RoleDescription = roleForm.RoleDescription;
Srvctx.SubmitChanges();
return RedirectToAction("RoleManagement");
}
return RedirectToAction("RoleManagement");
}
catch
{
return RedirectToAction("RoleManagement");
}
}
所以当它命中时:
return RedirectToAction("RoleManagement");
它只是转到页面但不刷新数据。但是当我看到我的数据库时,它已经被改变了。
是ASP.NET MVC的新手,不知道从哪里开始寻找......
有什么想法吗?
角色管理:
public ActionResult RoleManagement(string userName)
{
return View("RoleManagement", new UserForm(userName));
}
Rolemangement cshtml:
@foreach (M2DAL.M2Service.Role r in Model.AllRoleIDs)
{
<tr>
<td>@r.RoleName</td> //This is not refreshing, on debug shows the number, but browser shows old number)
<td>@r.RoleID</td>
<td>@Html.ActionLink("Edit Roles", "EditRole", "Users", new { roleId = r.RoleID }, new { @class = "action" }) </td>
</tr>
}
答案 0 :(得分:1)
您没有发布RoleManagement
操作的代码。我不知道你在哪里存储你的模型,但你确定,这个动作是在再次读取数据库吗?
应该有类似的东西(只是一个例子)
[HttpGet]
public ActionResult RoleManagement()
{
var roles = Srvctx.Roles.Take(1000);
return roles;
}