Частичные представления mvc3 для поиска, проверки, отправки окончательных результатов - PullRequest
1 голос
/ 29 февраля 2012

Я создаю пользовательский интерфейс с использованием MVC3 для создания текстового файла сообщения на основе выбора пользователя. Пользователь должен найти пациента по идентификатору, затем по имени поставщика из моей базы данных, а затем инициировать создание текстового файла. У меня работает генератор сообщений, если ему передаются нужные объекты (отдельная сборка).

Мне нужна помощь в понимании того, как реализовать логику поиска / выбора / очистки, и представления результатов для вызова генератора. (Новое в MVC3).

Я сделал частичные представления для отображения результатов поиска, и у меня есть основные результаты поиска, отображаемые в моем представлении индекса.

Проблемы:

Мой поиск провайдеров возвращает список провайдеров по фамилии и имени, и мне нужно, чтобы мой пользователь выбрал одного из них, если их более одного.

Как мне поместить эти частичные представления в третью, чтобы отправить их результаты?

Как я могу сделать возможным очистить результаты в партиалах? Как мне убедиться, что у меня есть допустимое значение в партиалах, прежде чем я отправлю результат?

Любое направление будет полезным. Спасибо.

Вот мой HomeController:

 public class HomeController : Controller
{
    private CrdDatabase db = new CrdDatabase(ConfigurationManager.ConnectionStrings["connectionString_CRD_TEST"].ConnectionString);

    public PartialViewResult PatientSearch(string clinicNumber)
    {
        var patient = db.GetCRDPatientInformation(clinicNumber);
        if (patient != null)
        {
            return PartialView("_PatientSearchResult", patient);  
        }
        // need to determine how to return an error message/validation message.
        return PartialView("_PartialClear");  

    }

    public PartialViewResult ProviderSearch(string lastName, string firstname)
    {
        var providerList = db.GetCRDProviderList(lastName, firstname);
        if (providerList.Count < 1)
        {
            return PartialView("_ProviderSearchResults", providerList);
        }
        return PartialView("_PartialClear");
    }

    public ActionResult Index()
    {

        return View();
    }
}

Вот частичное представление _PatientSearchResult.cshtml:

@model Objects.CRDPatientInfo
<table id="searchResults">
<tr>
    <th>
        Clinic Number
    </th>
    <th>
        Last Name
    </th>
    <th>
        First Name
    </th>
    <th>
        Middle Name
    </th>
    <th>
        Date of Birth
    </th>
    <th>
        Admin Gender
    </th>
</tr>
<tr>
    <td>
       @Model.clinic_number
    </td>
    <td>
       @Model.pat_name_last
    </td>
    <td>
       @Model.pat_name_first
    </td>
    <td>
       @Model.pat_name_mid
    </td>
    <td>
       @Model.pat_birth_date
    </td>
    <td>
       @Model.pat_gender_code
    </td>
</tr>
</table>

_ProviderSearchResults.cshtml аналогичен, за исключением того, что он перебирает список в модели.

Вот мой Index.cshtml, пока:

@{
ViewBag.Title = "Muse Orders Home Page";
}

<h2>@ViewBag.Message</h2>

@using (Ajax.BeginForm("PatientSearch", "Home", new AjaxOptions
{
     HttpMethod = "GET",
     InsertionMode = InsertionMode.Replace,
     UpdateTargetId = "searchPatientResults"
 }))
{
    <text>Clinic Number:</text>
    <input type="text" name="clinicNumber" />
    <input type="submit" name="submitButton" value="Search" />
    <input type="submit" name="submitButton" value="Clear" />

}       

<table id="searchPatientResults">

</table>

@using (Ajax.BeginForm("ProviderSearch", "Home", new AjaxOptions{
     HttpMethod = "GET",
     InsertionMode= InsertionMode.Replace,
     UpdateTargetId= "searchProviderResults"
    }))
{
    <text>Provider Last Name:</text>
    <input type="text" name="lastName" />
    <text>Provider First Name:</text>
    <input type="text" name="firstName" />
    <input type="submit" name="submitButton" value="Search" />
    <input type="submit" name="submitButton" value="Clear" />

 }

  <table id="searchProviderResults">

  </table>

 @using (Ajax.BeginForm("GenerateOrder", "Home", new AjaxOptions
{
     HttpMethod = "POST",
     InsertionMode = InsertionMode.Replace,
     UpdateTargetId = "generateOrder"
 }))
{
    <input type="hidden" name="patient" />
    <input type="hidden" name="provider" />
    <input type="submit" name="submitButton" value="GenerateOrder" />
    <input type="submit" name="submitButton" value="Clear" />

 }

<table id="generateOrder">

</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...