2015-02-10 37 views
0

我正在從CSHTML做一個簡單的AJAX POST。在帖子中,我傳遞了一個字符串。用簡單字符串TryUpdateModel

$.ajax({ 
     type: "POST", 
     url: '@Url.Action("Test","Controller"', 
     contentType: "application/json; charset=utf-8", 
     data: JSON.stringify({ pt: 'testString' }), 
     cache: false, 
     success: function(data) { 
     } 
}); 

我想在控制器得到這個值,如下所示 -

[HttpPost] 
public JsonResult Test() 
{ 
     var pt = string.empty; 
     TryUpdateModel(pt); 
     // Do some processing and return a value 
     return Json(true); 
} 

但始終我pt當屬空。也請給我解決與價值類型的作品。

+1

你的控制器代碼沒有意義。您不是使用'planType'並且聲明一個新的'pt'!你的動作參數應該命名爲'pt' – 2015-02-10 20:09:24

+0

你沒有模型。 「TryUpdateModel」的意思是你的方法需要是「public ContentResult GetPlansData(string pt)'而pt是你發佈的值是」teststring「 – 2015-02-10 21:08:07

+0

我更新了我的問題,我的問題的主要意圖是如何使用TryUpdateModel()獲取一個字符串(以及值類型)。 – 2015-02-11 04:03:57

回答

0

爲控制器的方法應該是

[HttpPost] 
public ActionResult Test(string pt) 
{ 
    TryUpdateModel(pt); 
    // Do some processing and return a value 
    return Json(true); 
} 
+0

你能告訴我,當我使用TryUpdateModel()時,爲什麼我應該有一個參數'string pt'? – 2015-02-11 05:25:23

+0

http://stackoverflow.com/questions/7735635/real-example-of-tryupdatemodel-asp-net-mvc-3 – 2015-02-11 06:12:34

1

試試這個:只能爲對象

[HttpPost] 
public JsonResult Test() 
{ 
     var pt = Request.Params["pt"] 
     // Do some processing and return a value 
     return Json(true); 
} 

OR

class PtModel { public string pt { get; set; } } 
[HttpPost] 
public JsonResult Test() 
{ 
     var ptModel = new PtModel(); 
     TryUpdateModel(ptModel); 
     var language = ptModel.pt; 

     // Do some processing and return a value 
     return Json(true); 
} 

TryUpdateModel正確的作品具有性質