2011-12-02 42 views
1

我有一個視圖,用戶將輸入一個ID,該ID將傳遞給控制器​​方法,然後該控制器方法將填充包含相關患者記錄的視圖。MVC3:將用戶輸入的ID作爲參數傳遞給控制器​​方法

我是MVC的新手,無法從文本框中獲取ID並將其傳遞給控制器​​方法。我感謝任何幫助。

筆者認爲:

@model Final.Models.Patient 

@Html.TextBoxFor(model => model.Patient_ID) 
@Html.ActionLink("Patient", "Details", new { id=???? }) 

在我的控制器:

public ViewResult Details(decimal id) 
    { 
     Patient patient = db.Patients.Single(p => p.Patient_ID == id); 
     return View(patient); 
    } 

感謝。

我能夠使其與以下工作:

@using (@Html.BeginForm("Details", "Patient")) { 
@Html.TextBoxFor(model => model.Patient_ID) 
<input type="submit", value="Submit"/> 



public ActionResult Details(Patient _patient) 
     { 
      decimal id = _patient.Patient_ID; 

      Patient patient = db.Patients.Single(p => p.Patient_ID == id); 
      return View(patient); 
     } 

回答

0

在控制器

[HttpPost] 
    public ActionResult Details(Patient _patient) 
    { 
     decimal id = _patient.Patient_ID 
     Patient patient = db.Patients.Single(p => p.Patient_ID == id); 
     return View(patient); 
    } 
+0

爲了接收提交到控制器在ActionResult模型中,你的控制器的代碼塊會說ActionResult而不是ViewResult是否正確? – HendPro12

+0

和Im不確定代替id =後面的問號放置什麼。也有點困惑,爲什麼你顯示病人被傳遞到控制器而不是身份證。 – HendPro12

2

接收模式中的ActionResult,而不是

@model Final.Models.Patient 
@usign (@BeginForm("Details","Controller"){ 
@Html.TextBoxFor(model => model.Patient_ID) 
@Html.ActionLink("Patient", "Details", new { id=???? }) 
<input type="submit", value="Submit"/> 
} 

是jQuery的方法可接受您?您可以分配一個id,文本框,然後得到的值(由用戶輸入的ID),然後使用$就

@Html.TextBoxFor(model => model.PatientID, new { id = "patient"}) 

$.ajax({ 
      url: '/Home/Details', 
      type: 'POST', 
      data: { id: $('#patient').val()}, 
      async: false, 
      success: function (result) { 
       alert('success!'); 
      } 
     }); 

希望這有助於你:)

+0

我想弄清楚如何使它與你的方法一起工作。我熟悉js文件並引用了jQuery庫,但我從未使用過ajax。這是否只涉及另一個庫參考使用?我假設jQuery/ajax代碼將進入一個js文件,並且我需要我的控制器中的東西以及...正確? – HendPro12

+0

不,你不需要額外的東西,參考jquery會做的。此外,您的控制器只接受數據中的「id」參數,沒有其他您需要更改:) – shennyL

+0

http://api.jquery.com/jQuery.ajax/請參閱此:) – shennyL

相關問題