MVC3: передать введенный пользователем идентификатор в качестве параметра в метод контроллера - PullRequest
1 голос
/ 02 декабря 2011

У меня есть представление, в котором пользователь вводит идентификатор, который будет передан в метод контроллера, который затем заполнит представление, содержащее соответствующую запись пациента.

Я новичок в MVC и не смог получить идентификатор из текстового поля и передать его методу контроллера. Я ценю любую помощь.

На мой взгляд:

@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 ]

2 голосов
/ 02 декабря 2011

Является ли метод jQuery приемлемым для вас? Вы можете назначить идентификатор для текстового поля, а затем получить значение (идентификатор, введенный пользователем), а затем отправить на ваш контроллер, используя $ .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!');
           }
       });

Надеюсь, это поможет вам:)

0 голосов
/ 02 декабря 2011

получает модель в 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);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...