2010-09-28 44 views
1

我最近將HTML網站「轉換」爲Web表單。通過轉換,我的意思是我在Visual Studio 2010中打開了該網站,添加了一個web.config文件以允許HttpPost協議,並將其轉換。但是,我的表單不想發佈到我的.aspx頁面。我錯過了什麼?當我構建應用程序,也沒有創建部署到我的本地IIS(7.5在Windows 7)的二進制

<form name="register2" method="post" action="#" onsubmit="return false;"> 

然後我的$。員額是我的$(函數(){...

$('form[name="register2"]').submit(function() { 
    var $registerForm2 = $('form[name="register2"]'); 
    if ($registerForm2.valid()) { 
     $.post({ 
      type: 'POST', 
      url: 'CreateAccount.aspx', 
      data: $(this).serialize() 
     }); 
    } else { //do validation 
     $registerForm2.validate(); 
    } 
}); 

當我提交表單,Chrome就會告訴我的請求URL是URL:http://localhost/mysite/[object%20Object]和接收錯誤代碼404頁CreateAccount.aspx確實存在。

回答

4

我現在看到問題了。 $.post()方法不支持將選項對象作爲參數。

documentation

$.post('ajax/test.html', function(data) { 
    $('.result').html(data); 
}); 

因此改變你的代碼:

$.post('CreateAccount.aspx', $(this).serialize()); 

,並給一個嘗試。

+0

你贏了,我得到了我的預期。哇噢! – 2010-09-28 19:45:37

0

你需要改變你的頁面擴展爲.aspx所以ASP .NET運行時會處理它,你還需要<%@ Page %>指令位於頁面頂部以指示頁面應該被編譯。

此外,您需要將runat="server"添加到您的FORM標籤。

嘗試將新的WebForm頁面添加到項目中,以查看默認情況下如何設置,並驗證該項目是否有效。

+0

我添加了頁面指令並重命名爲.aspx'<%@ Page Language =「C#」AutoEventWireup =「true」%>'。這個頁面是一個facebox彈出窗口嗎?我在表單中添加了'runat =「server」'屬性,它有兩個不同的地方:*不*渲染名稱屬性,* *渲染ID爲'ctl100'。我添加了一個id屬性,並改變了'submit'函數以通過id來識別窗體,但它似乎發佈相同。頁面指​​令有問題嗎? – 2010-09-28 15:37:17

+0

沒錯。 ASP.NET爲你自動生成ID,這在使用jQuery時會導致一些痛苦。我嘗試使用類來識別DOM元素。這似乎是由於某種原因,jQuery使用錯誤的URL來提交請求。我會放一個按鈕的形式,它唯一的作用是調用'$ .post()'代碼,並序列化表單而不是'this'。這可能會告訴我們什麼。 – 2010-09-28 16:03:33

+0

沒有這樣的按鈕或專門調用.post與它運氣。 Facebox div的標記位於與「父」文件不同的文件中。父級是'index.html',現在子級頁面是'reg.aspx'。你認爲重要嗎? – 2010-09-28 16:29:13

相關問題