заполнение ViewBag HTML - PullRequest
       9

заполнение ViewBag HTML

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

У меня есть контроллер с методом, который вызывается при нажатии кнопки в моей форме.Он заполняет переменную в моей viewbag (строка, содержащая HTML), а затем я пытаюсь отобразить содержимое этого в моем представлении.По какой-то причине содержимое viewbag не меняется.
Вот код в моем контроллере:

    Function Index() As ActionResult
        Dim TotalPSys As MyBusinessLayer.ListPSysAndMods = New ListPSysAndMods 
        ViewBag.HTMLForMods = "set"
        ViewBag.Test = "123"
        Return View(TotalPLC)
    End Function

  <HttpPost()>
    Function ShowModulesForPSys(ByVal strPSysID As String) As ActionResult
// .... do something....
        returnHTMLString = "<table><tr> <td>Show mods</td><td>Module Name</td></tr>"
        For Each moduleitem In modulelist
            returnHTMLString = returnHTMLString + " <tr> <td width='50%'  style='background-color:#5c87b2'><font color='white'>Number:</font> </td><td>Html.DisplayFor(Function(x) " + moduleitem.SlotNumber + ")</td>"
            returnHTMLString = returnHTMLString + "</tr><tr><td width='50%' style='background-color:#5c87b2'><font color='white'>RevNumber:</font></td>  <td>Html.DisplayFor(Function(x) " + moduleitem.RevisionNumber + ")</td>"
            returnHTMLString = returnHTMLString + "</tr><tr> <td width='50%'  style='background-color:#5c87b2'><font color='white'>IP Address:</font></td><td>Html.DisplayFor(Function(x) " + moduleitem.ModuleIP + ")</td></tr>"

        Next
        returnHTMLString = returnHTMLString + "</table>"
        'ViewData("HTMLForMods") = returnHTMLString
        ViewBag.HTMLForMods = returnHTMLString
        'MsgBox(ViewBag.HTMLForMods)
        ViewBag.Test = "456"
        MsgBox(ViewBag.Test)
        Return RedirectToAction("Index")

    End Function

Код в представлении выглядит следующим образом:

         <p>@Html.Raw(ViewBag.HTMLForMods)</p>
         <p>@ViewBag.Test</p>

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

1 Ответ

1 голос
/ 20 декабря 2011

Похоже, вы перенаправляете на индекс, поэтому ваш Viewbag.HtmlForMod будет перезаписан в соответствии с тем, что определено в методе действия с индексом.

...