我遇到了问题。我需要帮助......
一般来说,我有一个ASP.NET MVC 5项目。当用户点击"保存"按钮,我在新创建的任务中运行一些代码。我需要知道操作的结果,所以我返回我的类ChangesMade的实例。然后我将对象序列化为JSON格式并传递给视图。然后我检查结果是否为真,我在新窗口中打开一个URL。
所以,在我的控制器中,我有以下内容:
public async Task<ActionResult> Save(here some parameters)
{
var changes = await _model.SaveAsync(some parameters);
return NewtownJson(changes);
}
主要的保存逻辑如下:
public async Task<ChangesMade> SaveAsync(some parameters here)
{
var data = (await _model.GetData(some parameter)).ToList();
// create a task of ChangesMade that contains public bool property MemoAdded
// that I need to pass to a view to know the result of operation
var task = Task<ChangesMade>.Factory.StartNew(() =>
{
ChangesMade changes = new ChangesMade();
try
{
using (var tr = new TransactionScope())
{
// some code here omitted for simplicity…
// if (someCondition == true) changes.MemoAdded = true;
tr.Complete();
}
return changes;
}
catch (Exception ex)
{
throw ex;
}
});
try
{
task.Wait();
}
catch (AggregateException ex)
{
string msg = "";
msg= ex.Flatten().InnerExceptions
.Where(e => e != null)
.Select(e => e.Message)
.Aggregate(msg, (current, message) => current + " " + message + ";")
.TrimEnd(';');
throw new Exception(msg);
}
return task.Result;
}
我在IIS上的两个站点上发布项目。第一个工作正常。但是第二个没有 - 由于某种原因,它总是返回change.Memo在视图中添加了false。
我无法找到原因。我不知道该怎么做......