MVC3:将用户输入的ID作为参数传递给控制器​​方法

时间:2011-12-02 05:11:20

标签: asp.net-mvc-3 view textbox parameter-passing

我有一个视图,用户将输入一个ID,该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);
        }

2 个答案:

答案 0 :(得分:2)

jQuery方法可以接受吗?您可以为文本框分配一个id,然后获取值(用户输入的id),然后使用$ .ajax

提交给您的控制器
 @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!');
           }
       });

希望这可以帮助你:)

答案 1 :(得分:0)

在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"/>
}
控制器中的

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