我試圖測試jQuery post。我張貼表單並希望在ajax中進行更新,並用div替換成功表單(看起來像一個常見用例)。如何從Firefox使用Request.IsAjaxRequest()是真實的,但在使用jquery post時從IE使用錯誤
下面的代碼在firefox中可以正常工作,但不能在IE中使用。
一個問題是,從Firefox Request.IsAjaxRequest()是真實的,但是從IE來,Request.IsAjaxRequest()是返回false
注:我把Thread.sleep代碼中我的控制器行動只是一個測試,以確保我能看到發生了什麼。
這裏是我的視圖代碼:
<div id="contact">
<form action="/Tracker/Add" method="post">
<fieldset id="inputbox">
<p>
<label>Today's number</label> <input class="inputText" id="weight" name="weight" type="text" value="208" /></p>
<p><label>Today's Date</label> <input class="inputText" id="datepicker" name="date" type="text" value="03-Mar-2010" /></p>
<p><input type="submit" value="Enter" /></p>
</fieldset>
這裏是JavaScript/jQuery代碼:
<script type="text/javascript" src="../../Scripts/jquery/1.3.2/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#contact form').live('submit', function() {
//$("#Loading").fadeIn(); //show when submitting
$.post($(this).attr('action'), $(this).serialize(), function(data) {
$("#contact").replaceWith($(data));
});
return false;
});
});
</script>
,這裏是我的控制器操作:
public ActionResult Add()
{
if (if (Request.IsAjaxRequest())
{
//firefox will hit this but IE wont
}
Thread.Sleep(5000);
return PartialView("EntryView", new MyViewModel());
}
升級工作! – leora 2010-03-06 12:53:12