如何在MVC中持久化Inner Object

时间:2013-12-13 17:06:17

标签: asp.net-mvc vb.net

我尝试做的是尝试并保留使用HTML中的用户名和密码属性的用户对象。

但问题是,当我点击提交按钮时,用户对象不会保留文本框中更新的文本值

我有一个包含两个文本字段用户名和密码的表单

@Imports InstantForum.Controller

@ModelType InstantForum.Window

@Code
    ViewData("Title") = "Index"
End Code




@Using (Html.BeginForm("LoginUser", "Login", FormMethod.Post ))

    @Html.HiddenFor(Function(Model) CType(Model.ModelObject, User).Username)
    @Html.TextBoxFor(Function(Model) CType(Model.ModelObject, User).Username)
    @Html.HiddenFor(Function(Model) CType(Model.ModelObject, User).Password)
    @Html.TextBoxFor(Function(Model) CType(Model.ModelObject, User).Password)

    @<input type="submit" value="Create" />

End Using

这是我的控制器

Namespace InstantForum
Public Class LoginController
    Inherits System.Web.Mvc.Controller

    '
    ' GET: /Login

    Function Index() As ActionResult

        Dim id As Integer = CInt(Me.Request.QueryString("id"))
        Dim width As Integer = CInt(Me.Request.QueryString("width"))
        Dim height As Integer = CInt(Me.Request.QueryString("height"))
        Dim color As Integer = CInt(Me.Request.QueryString("color"))

        Dim mUser = New Controller.User With {.Username = "redoc01", .Password = "ullafi01"}
        Dim mWindow As New Window With {.Color = color, .Id = id, .Width = width, .Height = height, .ModelObject = mUser}

        Return View("Index", mWindow)

    End Function

    <HttpPost> _
    Public Function LoginUser(windowControl As Window) As ViewResult

        If True Then

        End If


    End Function


End Class

结束命名空间

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

LoginUser函数中,Me.Request添加了一个断点,并检查其中的内容

这不是AJAX请求。该页面不一定会令人耳目一新,它会执行您在此操作结束时要求它执行的操作。不要把它留作

 If True Then
        End If

    End Function

您必须将用户返回到您选择的视图。

了解Index操作如何指定要转到哪个视图?

Return View("Index", mWindow)