.NET MVC показывает значение переменной - PullRequest
0 голосов
/ 29 сентября 2019

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

@lkup1

и

@Html.DisplayFor(modelItem => item.lkup1)

и

@foreach (var item in Model)
    {@Html.DisplayFor(modelItem => item.lkup1)}

Это моя структура - выпадающий список Model for Look Up Reference

    public class ListItem
    {
        public string Value { get; set; }
        public string Text { get; set; }
    }

    public class ModelForDropDown
    {
        public string SelectedItemText { get; set; }
        public List<ListItem> ItemListText { get; set; }
    }

    public class LkupResultRecord
    {
        public ModelForDropDown lkup_1_txt { get; set; }
        public ModelForDropDown lkup_2_txt { get; set; }
    }

Контроллер для создания нового выпадающего списка lkup1txt -

    public ActionResult LkupRef_Lkup1()
    { 
        return View(lkuprefdao.getValuesForLkupTxtDropDown());
    }
    [HttpPost]
    public ActionResult LkupRef_Lkup1(string lkup_1_txt)
    { return RedirectToAction("LkupRef_Lkup2", "LkupRef", new
        {
            lkup_1_txt = lkup_1_txt
        });
    }

Контроллер для создания нового выпадающего lkup2txt -

    public ActionResult LkupRef_Lkup2()
    { 
        if (lkuprefdao.IsDataRefreshDowntime() == true) { return RedirectToAction("BadgerWeb_RestrictedAccess", "LkupRef"); }
        return View(lkuprefdao.getValuesForLkupTxtDropDown());
    }

и представления, где я хочу, чтобы lkup_1_txt отображал -

 @using (Html.BeginForm())
 {
  <table>
    <tr>
        <td>lkup_1_txt</td>
        <td>  @Html.DisplayFor(lkup_1_txt) </td>
     </tr>

    <tr>
       <td> lkup_2_txt </td>
        <td>@Html.DropDownList("lkup_2_txt", new SelectList(Model.lkup_2_txt.ItemListText, "Value", "Text"), null, new { style = "width: 650px;" })</td>
    </tr>
  </table>
 }

I

1 Ответ

0 голосов
/ 30 сентября 2019

Это все еще немного неясно и не имеет большого смысла, но я думаю, что вы, вероятно, хотите что-то вроде этого:

1) определить lkup_1_txt как строку в вашей модели, чтобысопоставьте со значением строки запроса, которую вы пытаетесь передать ему. Определение его как сложного типа, такого как ModelForDropDown (как вы это сделали), похоже, не имеет никакого смысла.

public class LkupResultRecord
{
    public string lkup_1_txt { get; set; }
    public ModelForDropDown lkup_2_txt { get; set; }
}

2) Добавьте параметр, чтобы метод действия LkupRef_Lkup2() мог получать входные данные. значение из перенаправления (или из прямого запроса). Прямо сейчас это просто игнорирование ввода. А также измените код метода действия, чтобы вы могли добавить входящий текст поиска в модель, прежде чем передавать его в представление.

public ActionResult LkupRef_Lkup2(string lkup_1_txt)
{ 
    if (lkuprefdao.IsDataRefreshDowntime() == true) { return RedirectToAction("BadgerWeb_RestrictedAccess", "LkupRef"); }
    LkupResultRecord model = lkuprefdao.getValuesForLkupTxtDropDown();
    model.lkup_1_txt = lkup_1_txt; //add the lookup text to the model
    return View(model);
}

3) Измените представление, чтобы оно могло читать текст поиска из свойства модели. :

<td>lkup_1_txt</td>
<td>  @Html.DisplayFor(m => m.lkup_1_txt) </td>
...