在MVC中进行字段更改时调用函数

时间:2013-05-23 19:33:31

标签: asp.net-mvc asp.net-mvc-4 razor

我有一个名为WorkOrder的实体,它被分配给一个员工。

我想在工作订单被签署后发送电子邮件通知。这可能发生在我的MVC创建或编辑操作(POST)上。

我遇到的问题是我必须检查以查看编辑中的值是否已更改以确定是否应发送电子邮件。

是否有更好的地方可以调用SendEmail函数,就像实体模型本身一样?

1 个答案:

答案 0 :(得分:2)

如果您正在讨论从视图发布,则可以在加载视图时创建现有值并将其绑定到表单中的隐藏字段。然后,在操作的POST上,您可以检查字段中的值是否与隐藏字段上的值不同。

观点示例:

@using (Html.BeginForm("MyAction", "MyController")
{
    @Html.HiddenFor(m => m.CurrentValue)
    @Html.TextBoxFor(m => m.Value)
    <input type="submit" value="submit" />
}

行动GET示例

public ActionResult MyAction()
{
    var viewModel = GetModelFromSomeWhere();
    viewModel.CurrentValue = viewModel.Value;
    return this.View(viewModel);
}

操作POST示例

[HttpPost]
public ActionResult MyAction(ViewModel model)
{
    if (model.Value != model.CurrentValue)
    {
        // It has changed! Send that email!
    }
}