Asp.net 使用aspx文件在MVC中更新

Asp.net 使用aspx文件在MVC中更新,asp.net,asp.net-mvc,entity-framework,Asp.net,Asp.net Mvc,Entity Framework,我有一系列的.aspx(WebForms)文件,我正在将它们传输到ASP.NET MVC环境中 在我的页面初始化期间,我调用以下方法: displayValues(Model) 调用此方法来填充单选按钮: Sub displayValues(Response As WMPQ.Module.BodyAreaSatisfactionTestResponse) With Response rblQ7_1.SelectedValue = .Q7_1 rblQ7_

我有一系列的.aspx(WebForms)文件,我正在将它们传输到ASP.NET MVC环境中

在我的页面初始化期间,我调用以下方法:

displayValues(Model)
调用此方法来填充单选按钮:

Sub displayValues(Response As WMPQ.Module.BodyAreaSatisfactionTestResponse)
    With Response
        rblQ7_1.SelectedValue = .Q7_1
        rblQ7_2.SelectedValue = .Q7_2
        rblQ7_3.SelectedValue = .Q7_3
        rblQ7_4.SelectedValue = .Q7_4
        rblQ7_5.SelectedValue = .Q7_5
        rblQ7_6.SelectedValue = .Q7_6
        rblQ7_7.SelectedValue = .Q7_7
        rblQ7_8.SelectedValue = .Q7_8
        txtQ8_1_TEXT.Text = .Q8_1_Text
        .Q8_1 = If(String.IsNullOrEmpty(rblQ8_1.SelectedValue), Nothing, Integer.Parse(rblQ8_1.SelectedValue))
        .Q8_2_Text = txtQ8_2_TEXT.Text
        .Q8_2 = If(String.IsNullOrEmpty(rblQ8_2.SelectedValue), Nothing, Integer.Parse(rblQ8_2.SelectedValue))
    End With
End Sub
我还有一个update方法,它以前是在buttonclick上调用的。单击按钮管理datacontext的更新

Sub updateRowValues(Response As WMPQ.Module.BodyAreaSatisfactionTestResponse)
    With Response
        .Q7_1 = rblQ7_1.SelectedValue
        .Q7_2 = rblQ7_2.SelectedValue
        .Q7_3 = rblQ7_3.SelectedValue
        .Q7_4 = rblQ7_4.SelectedValue
        .Q7_5 = rblQ7_5.SelectedValue
        .Q7_6 = rblQ7_6.SelectedValue
        .Q7_7 = rblQ7_7.SelectedValue
        .Q7_8 = rblQ7_8.SelectedValue
        .Q8_1_Text = txtQ8_1_TEXT.Text
        .Q8_1 = If(String.IsNullOrEmpty(rblQ8_1.SelectedValue), Nothing, Integer.Parse(rblQ8_1.SelectedValue))
        .Q8_2_Text = txtQ8_2_TEXT.Text
        .Q8_2 = If(String.IsNullOrEmpty(rblQ8_2.SelectedValue), Nothing, Integer.Parse(rblQ8_2.SelectedValue))
    End With
End Sub
我的问题是:既然我的“按钮”正在提交回控制器,我在哪里或如何调用此代码

供参考:

我的控制器的操作如下(这段代码显然没有经过测试,因为我还在创建解决方案):

函数ViewResponse(id为整数,页面为responseController.EPage)
Dim db作为新的WMPQ.Module.ClientResponsesDbContext()创建
Dim response=db.ClientResponses.Where(函数(r)r.ClientResponseID=id)。第一个
如果没有(回应),那么
返回重定向到操作(“NewResponse”)
如果结束
选择案例页面
案例响应Controller.EPage.BodyArea测试
返回视图(“BodyAreaAssativeTestDisplay”,响应。BodyAreaAssativeTestResponse)
其他情况
重定向到操作(“新响应”)
结束选择
端函数
_
功能ViewResponse(型号为WMPQ.Module.BodyAreaSatisfactionTestResponse)作为ActionResult
Dim db作为新的WMPQ.Module.ClientResponsesDbContext()创建
如果(ModelState.IsValid),则
db.Entry(model).State=Entity.EntityState.Modified
db.SaveChanges()
Return RedirectToAction(“详细信息”,“响应”,新增为{.id=model.ClientResponseID})
如果结束
返回视图(模型)
端函数
目前,httppost函数正在接收一个完全空白的对象。我在submit按钮的codebehind上调用updateRowValues方法,但它没有被点击

我想这显然是击中,以便我可以更新我的价值观。我也不想以不同的方式重新开发这些aspx页面,因为我有一系列这样的页面,它们都经过测试,并且已经工作了一段时间

另外,我不知道为什么这个对象是完全空的。例如,即使原始值/键等也是空白/零


如果您对这两个问题有任何帮助(不确定它们是否相关),我们将不胜感激。

MVC使用html属性的name属性映射到操作方法上的参数。因此,在html表单中,您需要使单选按钮名称属性与BodyAreaSatisfactionTestResponse中属性的名称匹配。

现在,确定按钮(提交)的代码隐藏没有被点击,控件直接返回控制器,模型完全为空。嗨,Eric,感谢您的响应。我已经更改了我的html以包含name属性,如下所示。BodyAreaSatisfactionTestResponse仍然返回为空。我觉得我已经很接近了。我也不明白为什么模型,当传递给aspx时被填充,当它返回时却没有。这是我的html。谢谢:
    Function ViewResponse(id As Integer, Page As ResponsesController.EPage)
        Dim db As New WMPQ.Module.ClientResponsesDbContext()

        Dim response = db.ClientResponses.Where(Function(r) r.ClientResponseID = id).First

        If IsNothing(response) Then
            Return RedirectToAction("NewResponse")
        End If

        Select Case Page
            Case ResponsesController.EPage.BodyAreasSatisfactionTest
                Return View("BodyAreasSatisfactionTestDisplay", response.BodyAreaSatisfactionTestResponse)
            Case Else
                RedirectToAction("NewResponse")
        End Select
    End Function

    <HttpPost> _
    Function ViewResponse(model As WMPQ.Module.BodyAreaSatisfactionTestResponse) As ActionResult
        Dim db As New WMPQ.Module.ClientResponsesDbContext()

        If (ModelState.IsValid) Then
            db.Entry(model).State = Entity.EntityState.Modified
            db.SaveChanges()
            Return RedirectToAction("Details", "Responses", New With {.id = model.ClientResponseID})
        End If


        Return View(model)
    End Function