Я создаю пользовательский интерфейс с использованием 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>