2011-05-27 65 views
2

我使用這個代碼從服務器獲取的局部視圖OT把它放在一個divMVC 3剃鬚刀調用服務器端函數使用jQuery

$.ajax(
    { 
     type: "POST", 
     url: "MyControler/MyAction", 
     success: function (result) { 
      $('#partialView').html(result);  
     }, 
     error: function (req, status, error) { 
      alert("Coudn't load partial view"); 
     } 
    }); 

現在我想做同樣的事情,但我會打電話的簡單梅索德返回一個字符串,並把結果在一個文本框

$.ajax(
    { 
     type: "POST", 
     url: "MyControler/MyMethod", 
     success: function (result) { 
      $('#myTextBox').html(result);  
     }, 
     error: function (req, status, error) { 
      alert("Coudn't load partial view"); 
     } 
    }); 

的梅索德會是這樣的

public string MyMethod() 
    { 
     returning "hello"; 
    } 

顯然它不工作,但有沒有辦法讓它工作?有一個屬性,我應該提前使用的梅索德

感謝

PS:

從我的第一個答案我想這紅色,但它不工作

public ActionResult Hello() 
    { 
     return Content("Hi there!"); 
    } 

是有什麼錯Ajax調用?

$.ajax(
    { 
     type: "POST", 
     url: "MyControler/Hello", 
     success: function (result) { 
      $('#myTextBox').html(result);  
    }, 
    error: function (req, status, error) { 
     alert("Coudn't load partial view"); 
    } 
}); 

PS

我想嘗試在一個乾淨的項目,因爲它的工作我試圖把它落實到我的項目,它的工作細使用簡單的方法返回一個字符串

,但現在看來,這僅在Global.asax設置文件任何想法我應該做的,使其在每個網頁上運作的起始頁工作???

回答

0

你想從該方法返回一個字符串,是的,但是你想要的是一個返回字符串的ActionResult 在StackOverflow上檢查以下問題和答案。

In MVC, how do I return a string result?

+0

從我紅紅的,我試過,但它不工作 public ActionResult Hel lo() { return Content(「Hi there!」); } – Soufiane 2011-05-27 11:42:08

+0

請編輯你的問題,當你需要粘貼代碼或做大的修改 – 2011-05-27 12:02:42

+0

它不會幫助我,因爲我做了同樣的事情,他們說我認爲有一個問題,您可以檢查ajax電話嗎? – Soufiane 2011-05-27 12:03:33

0

這是更好的,當你的虛擬目錄或子域名下運行使用Url.Action法案件。 Action方法將創建正確的Url。

除此之外,它看起來像你發佈到網站,讓你添加HttpPost屬性到你的行動?

+0

你能否請解釋我不知道我明白你的意思 – Soufiane 2011-05-30 11:30:45

+1

'url:「MyController/MyAction」'行,可以使用Url.Action方法像這樣'URL :「@ Url.Action(」MyAction「,」MyController「)」'。如果您使用的是擴展Javascript文件,那麼可以簡單地在主頁面上嵌入/生成Url作爲變量,並通過外部文件引用該變量。 – Kieron 2011-05-30 17:14:27

3

您製作的是HttpPost電話。因此,請確保您的操作方法都裝飾有HttpPost屬性。也總是嘗試使用Url.Action HTML輔助方法的路徑操作方法。

假設您的動作方法存在於MMyControlerController中,下面的代碼應該可以工作。

$.ajax(
     { 
     type: "POST", 
     url: "@Url.Action("Hello","MyControler")", 
     success: function (result) { 
      alert("result from server "+result); 
      $('#myTextBox').html(result);  
     }, 
     error: function (req, status, error) { 
      alert("Coudn't load partial view"); 
     } 
}); 

動作方法

[HttpPost] 
public ActionResult Hello() 
{ 
    return Content("This is String Content"); 
} 
1

我猜你應該使用下列

$('#myTextBox').attr('value',result); 

代替

$('#myTextBox').html(result);