c# - MVC4 .net4 更新前模型刷新?

标签 c# sql-server asp.net-mvc entity-framework-4 asp.net-mvc-4

我有一个 EDM。当基于 Current 字段的 bool 值显示模型时,我将模型传递给 View (只有一条记录永远是当前的):

public ActionResult Index()
{
    myEDM db = new MyEDM();
    MyEDMModel model = db.MyEDMTable.Where(g => g.Current == 1).First();
    return View(model);
}

该表有 10 列

fld1 fld2 fld3 ......

出于比较原因,每个字段都使用默认值空字符串“”创建(我无法与 Null 进行比较)。

在 View 中,我根据每个字段的内容显示背景图像和 HTML.Actionlink:

@if (Model.fldNo1 == "")
{
    <td class="number">
        @Html.ActionLink("1", "TakeNumber", "Numbers", new { Model, number = 1 })
    </td>
}
else
{
    <td class="numberTaken">
        @Html.ActionLink("1", "NumberTaken", "Home", new { Model, number = 1 })
    </td>
}

每个字段都可以由用户占用和保留。每个字段只有一个用户(显然),如果字段 != '' 那么我什么也不做。该字段已被其他人保留。如果可用,该字段将填充用户 ID。

这就是我的问题所在。我已经从 EDM 的页面加载中传递了模型。如果用户随后浏览 View 5 分钟,然后选择保留特定号码。为了检查其他用户是否在 5 分钟的浏览时间内保留了此字段,我是否需要从 EDM 刷新模型,或者传递的模型是否动态更新?即

我要这样做吗:

myEDM db = new MyEDM();
Int32 muser = (Int32)Membership.GetUser().ProviderUserKey;
String user = muser.ToString();

if (number == 1 && model.fldNo1 == "")
{
    model.fldNo1 = user;
    UpdateModel(model);
    db.SaveChanges();
}
elseif ...........

或者我必须首先调用或刷新模型以确保在用户浏览期间(例如 5 分钟)内没有输入特定字段中的条目:

myEDM db = new MyEDM();
myEDMModel updateEDMModel = db.MyEDMTable.Where(g => g.id == model.id).First 
Int32 muser = (Int32)Membership.GetUser().ProviderUserKey;
String user = muser.ToString();

if (number == 1 && updateEDMModel.fldNo1 == "")
{
    updateEDMModel.fldNo1 = user;
    UpdateModel(updateEDMModel);
    db.SaveChanges();
}
elseif ...........

不幸的是,我是一个单人乐队,我在测试这一点时遇到了很大的困难。

最佳答案

不再附加从 Entity Framework 填充并传递到 View 的模型。即使您从 View 中进行 EF 调用(不好的做法,不要这么做),渲染的值也不会被附加。

所以,不,您显示的值不会随着数据库值的变化而变化

为了创建您想要的行为,您需要使用 Ajax 方法。

我非常喜欢的一个方法是使用 @Html.Action() 部分。如果在

中则调用
<script type="text/javascript">
            window.setInterval(
                $.get('@Url.Action("StillOnline", "Account")'), 10000);
</script>

关于c# - MVC4 .net4 更新前模型刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14576577/

相关文章:

mysql - SQL Server 中 mysql 的等效语法

asp.net-mvc - ASP.NET MVC DotNetOpenAuth 在身份验证后获取 ReturnURL?

c# - 列表的 MVC 模型绑定(bind)动态列表

c# - 在给定字符串中查找重复模式

c# - 数据从 DAL 传输到 MVC View

c# - 在 asp.net MVC 4 webapp 中,用户上传的文件存储在哪里?

c# - 如何在类文件中使用 Url.Action()?

c# - Linq更新多列

c# - 从 xml 加载对象,在动态 UI 中编辑值并保存回 xml

sql - T-SQL 包含所有行 ID 的最少公共(public)日期集