幾天來,我無法找到問題本身,這真的讓我發瘋。控制器生成很少的線程,雖然沒有問
我有asp.net(mvc4)web應用程序,其中有幾個索引頁面(顯示列表),當點擊列表中的任何項目時,它將返回編輯視圖頁面。 在編輯頁面(在視圖本身中) - 有一個提交按鈕,它應該更新數據庫並重定向到索引頁面。 (首先,「提交」通過部分視圖加載了所有的html編輯代碼,但我改變了它,所以我可以重定向到索引頁面 - 因爲「子動作不允許執行重定向動作」)。
所以問題是,控制器不會重定向到索引頁。
當我在控制器中的post函數中放置一個斷點時,我發現很少的線程運行代碼,雖然沒有詢問線程,如果我將光標放在其中一個進程的調試箭頭上,我可以看到消息「進程或線程自上一步以來發生了變化「。我不知道如何,我在一個頁面中解決了這個問題(不知道怎麼做,因爲我不知道是什麼造成了這個問題),但有時(隨機)它又出現了,在另一頁我做了沒有設法解決它。
這裏是從控制器和從視圖中的某些代碼:
控制器:
[HttpPost]
public ActionResult Edit([ModelBinder(typeof(OpportunityBinder))] OpportunityModel draft)
{
try
{
if (Request.Params["cancel"] != null)
{
return RedirectToAction("index", Utils.CrmDB.GetOpportunities());
}
if (draft.IsValid())
{
if (Utils.CrmDB.UpdateOpportunity(draft))
return RedirectToAction("Index", Utils.CrmDB.GetOpportunities());
}
return View(draft);
}
catch
{
return View();
}
}
檢視:
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
/* Some divs */
<p>
<input type="submit" value="Update" />
</p>
</fieldset>
<fieldset>
/* Some partial views*/
/* loaded using @Html.Action() */
</fieldset>
}
@section Scripts
{
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")
}
局部視圖代碼:
@model Genius_crm.Models.ActivityListModel
<p>
<button id="dlgAddActivity">
New
</button>
</p>
<div>
<table>
/* some tr and td */
</table>
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#dlgAddActivity').each(function() {
var $link = $(this);
var pathname = window.location.pathname;
var parts = pathname.split('/')
var sub = parts[3]
var $dialog = $('<div id="addDialog"></div>')
.load('@Url.Action("AddActivityToOppPartial", "Opportunity")[email protected]&[email protected]')
.dialog({
autoOpen: false,
title: $link.attr('title'),
width: 758,
height: 265,
resizable: false,
//close: function (event, ui) { window.location.reload();}
});
$link.click(function() {
$dialog.dialog('open');
return false;
});
});
});
所以 - 我希望我已經明確了我的問題。 我已經通過了一些關於這個主題的帖子,並沒有人幫助我。 這個問題也出現在Chrome和IE中。
編輯#1 - 註釋掉部分視圖時,問題在所有頁面中消失!
編輯#2 - 似乎使用其他控制器操作的部分中加載的按鈕存在問題。
編輯#3 - 我已經添加了@ Html.Action()加載的部分視圖代碼,其中包括一個用於jquery-ui對話框的腳本。
你是如何渲染你的局部視圖 - 他們是否打電話給其他控制器的動作? – Paddy
我正在使用@ Html.Action()。 是的,他們正在使用其他控制器操作。 – ayheber