2011-02-23 50 views
1

我有一個控制器的動作/響應/插入,並希望能夠從URL GET變量,並將其保存到我的數據庫。MVC3 - 讀GET變量分爲控制器動作

的URL看起來像這樣:

/Responses/Insert?pass=blah&msisdn=blah&sender=blah&message=blah&dca=blah&msg_id=blahsource_id=blah 

這裏是我的模型:

public class Response 
{ 
    public int ResponseId { get; set; } 
    public string msisdn { get; set; } 
    public string sender { get; set; } 
    public string message { get; set; } 
    public string dca { get; set; } 
    public string msg_id { get; set; } 
    public string source_id { get; set; } 
} 

可以如何編寫我的控制器行動的人提供建議?

// 
// GET: /Response/Insert 

public ActionResult Insert() 
{ 
    return View(); 
} 

非常感謝!

保羅

編輯1 - 解決(感謝LukLed)

public ActionResult Insert(Response response) 
    { 
     if (ModelState.IsValid) 
     { 
      responseRepository.InsertOrUpdate(response); 
      responseRepository.Save(); 
      return RedirectToAction("Index"); 
     } 
     else 
     { 
      return View(); 
     } 
    } 
+0

所以它的工作原理很棒:) – LukLed 2011-02-23 11:53:27

+0

當您修改數據時,您應該考慮使用POST而不是GET。我認爲主要原因是瀏覽器和代理可能會緩存請求,但使用適當的HTTP動詞更有意義。 – 2011-03-18 19:20:57

回答

3

試試這個:

public ActionResult Insert(Response response) 
{ 
    return View(); 
} 

型粘結劑將處理轉向GET值到Response對象。

+0

那簡單?你不必以某種方式聲明從URL獲取數據? – 2011-02-23 11:30:01

+0

@Paul Brown:是的,那很簡單。如果屬性的命名方式與'GET'參數相同,則應該可以工作。 – LukLed 2011-02-23 11:32:03

+0

要去返回視圖的URL但沒有數據插入:(什麼意見 – 2011-02-23 11:42:22