我與MVC3玩弄,並試圖創建一個簡單的接觸形式的崗位值回使用jQuery $就服務器。我似乎無法發佈自己的狀態值回服務器
在我查看了我的聯繫形式,結合我創建了一個ContactViewModel的時刻:
public class ContactViewModel
{
[Required]
public string Name { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[Required]
public string Message { get; set; }
}
這裏是我的[HttpPost]因爲一旦它被提交處理提交的表單方法:
[HttpPost]
public ActionResult SubmitForm(ContactViewModel contactVM)
{
if (!ModelState.IsValid)
{
return View(contactVM);
}
// TODO: If the form's valid then save the data
return RedirectToAction("Thankyou");
}
如您所見,此方法需要一個ContactViewModel數據類型。我很困惑,因爲它似乎我沒有這個類在我的JavaScript可用,所以我想我必須在js中重建類,然後回發給我的SubmitForm方法?下面是我用嘗試和實現這一目標的代碼:
<script type="text/javascript">
$(document).ready(function() {
var contactVM = { ContactViewModel : [{
Name: $('#Name').val(),
Email: $('#Email').val(),
Message: $('#Message').val() }]
};
$.ajax({
url: '/Contact/SubmitForm',
type: "POST",
data: JSON.stringify(contactVM),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function() {
alert('Success!');
},
error: function() {
alert('Failure!');
}
});
});
</script>
正如你所看到的,我已經試過在JavaScript來創建完全相同的類,這樣我可以將它張貼回服務器,但是當我遍歷代碼,似乎我在SubmitForm方法中接受的contactVM變量只有空值。
我哪裏錯了?我是否在正確的軌道上?道歉,如果我沒有解釋清楚!
謝謝!
更新:原來我是一個傻瓜,只調用了$就功能頁面加載,而不是被點擊的按鈕時!什麼安德魯下面所述的合併,都似乎是工作:-)
很高興你知道了。我正要問,如果這些字段是在頁面加載':)''填充的 – 2012-03-03 16:11:29