Im for new to Web 개발 및 그 원리는 너무 명확하지 않아서 사과드립니다.IE9 및 AJAX - List Not Refreshing (ASP.NET 및 MVC3)
지금까지의 이야기 ......
임 ASP.NET MVC3를 배울 수있는 오픈 소스 응용 프로그램을 작성. 이제 나는 새로운 CRUD 컨트롤러를 만드는 단계에서 새로운 유형을 만들 수있게되었습니다. 이제 View가있는 대시 보드를 보유하고있는 SiteAdmin 컨트롤러를 만들었습니다. 보기에는 탭이 포함됩니다. 나는 다음과 같은 블로그 포스트를 사용하여 탭을 처리하고 난라는 컨트롤러 동작 방법에 인덱스 매개 변수를 전달함으로써 내 탭을 처리하기 위해 AJAX 예제를 사용하기로 결정했습니다
http://ericdotnet.wordpress.com/2009/03/17/jquery-ui-tabs-and-aspnet-mvc/
JQuery와 UI하는 방법을 학습 한 AjaxGetTab. 이 메소드는 (블로그 포스트 당) 필수 유형에 대한 부분 뷰를 리턴합니다. 부분보기에는 컨트롤러 작업 메서드가 있습니다. CreateTransactionType (HttpPost) - 새 레코드를 만듭니다.
는 "중지하여 문제가 무엇인지이 waffling"
문제는 작성 방법이 완료된 후 뷰의 탭에서 내 목록이 새로 고쳐지지 않는다는 것입니다가. 이 문제는 IE9에만 존재합니다 (테스트 한 IE 만 해당) 이지만 크롬과 Firefox가 작동합니다. 즉 목록이 새로 고침됩니다.
데이터베이스 레코드가 있는지 확인했습니다.
내 코드는 여기에 있습니다 : Dashboard.cshtml에서
JQuery와 :
<script type="text/javascript">
$(document).ready(function() {
$("#tabs").tabs();
getContentTab (1);
});
function getContentTab(index) {
var url='@Url.Content("~/SiteAdmin/AjaxGetTab")/' + index;
var targetDiv = "#tabs-" + index;
var ajaxLoading = "<img id='ajax-loader' src='@Url.Content("~/Content")/ajax-loader.gif' align='left' height='28' width='28'>";
$(targetDiv).html("<p>" + ajaxLoading + " Loading...</p>");
$.get(url,null, function(result) {
$(targetDiv).html(result);
});
}
SiteAdminController AjaxGetTab 방법 :
/// <summary>
/// AJAX action method to obtain the correct Tab to use.
/// </summary>
/// <param name="index">Tab number</param>
/// <returns>Partial View</returns>
public ActionResult AjaxGetTab(int id)
{
string partialViewName = string.Empty;
object model = null;
//--Decide which view and model to pass back.
switch (id)
{
case 1:
partialViewName = "_TransactionType";
model = db.TransactionTypes.ToList();
break;
case 2:
partialViewName = "_DirectionType";
model = db.DirectionTypes.ToList();
break;
case 3:
partialViewName = "_UserType";
model = db.UserTypes.ToList();
break;
case 4:
partialViewName = "_CurrencyType";
model = db.CurrencyTypes.ToList();
break;
case 5:
partialViewName = "_tabError";
break;
}
return PartialView(partialViewName,model);
}
}
SiteAdminController CreateTransactionType 방법 :
[HttpPost]
public ActionResult CreateTransactionType(TransactionType model)
{
try
{
// TODO: Add insert logic here
if (ModelState.IsValid)
{
model.id = Guid.NewGuid();
model.RecordStatus = " ";
model.CreatedDate = DateTime.Now;
db.TransactionTypes.AddObject(model);
db.SaveChanges();
}
return RedirectToAction("Dashboard");
}
catch
{
return PartialView("_tabError");
}
}
신속한 대답을 위해 Charles에게 감사드립니다. 나는 그것을 지금 소용돌이 치고, 당신을 1 달에 알릴 것이다. – garfbradaz
안녕하세요 찰스 - IE9에서 작동했습니다. 정말 고마워요. – garfbradaz