VB.. NET MVC Get vs Post我如何设计我的页面



我有一个VB。. NET mvc视图的形式,有3个参数和2个按钮,我不知道如何设计我的页面。

Button 1本质上是一个GET -假设运行一个sql查询并返回一个数据集(多个表)。按钮2本质上是一个PUT -假设运行一个sql更新语句(多个更新)。

CustomModel包含了我的3个参数作为属性,并且我在所有参数中都包含了Required属性。

我如何设计,使必需的属性得到尊重。也就是说,即使参数输入为空白,我的ViewInfo方法也会被访问。

我声明ViewInfo与HttpGet和我的UpdateInfo与HttpPut属性。我需要在ViewInfo方法中声明参数吗?我的@Html.BeginForm(…)声明正确吗?

VB。. NET模型类:

Public Class CustomModel
    <Required(ErrorMessage:="Parameter 1 is required"),
    Display(Name:="Parameter 1:")>
    Public Property Parameter1 As String
    <Required(ErrorMessage:="Parameter 2 is required"),
    Display(Name:="Parameter 2:")>
    Public Property Parameter2 As String
    <Required(ErrorMessage:="Parameter 3 is required"),
    Display(Name:="Parameter 3:")>
    Public Property Parameter3 As Integer
    Public Sub New(Parameter1 As String, Parameter2 As String, Parameter3 As Integer)
        Me.Parameter1 = Parameter1
        Me.Parameter2 = Parameter2
        Me.Parameter3 = Parameter3
    End Sub
    Public Property Info As DataSet = New DataSet
End Class

VB。网络控制器:

Function Index() As ActionResult
    ViewBag.ShowView = False
    Return View()
End Function
Function ViewInfo(Parameter1 As String, Parameter2 As String, Parameter3 As Integer)
    Dim result As New CustomModel(Parameter1, Parameter2, Parameter3)
    If ModelState.IsValid Then
        result.Info = GetInfo(Parameter1, Parameter2, Parameter3)
    End If
    ViewBag.ShowView = True
    Return View("Index", result)
End Function
Function UpdateInfo(Parameter1 As String, Parameter2 As String, Parameter3 As Integer)
    Dim result As New CustomModel(Parameter1, Parameter2, Parameter3)
    If ModelState.IsValid Then
        result.Info = UpdateInfo(Parameter1, Parameter2, Parameter3)
    End If
    ViewBag.ShowView = True
    Return View("Index", result)
End Function

HTML视图
@ModelType CustomModel
...
@Using (Html.BeginForm("ViewInfo", "Home", Nothing, FormMethod.Post))
    ...
    @Html.LabelFor(...)
    @Html.TextBoxFor(...)
    ...
    <button type=button>View</button>
    <button type=submit>Update</button>
End Using
输出:

@If ViewBag.Show Then
    // Multiple WebGrid calls ???
End If

我终于找到了一个让我上路的办法。

我没有意识到后台的默认布局页面不包括验证javascript文件,所以我不得不添加到我的特定视图文件:

@Section scripts
    @Scripts.Render("~/bundles/jqueryval")
End Section

是否有一些你必须做的,这样这个文件是自动带来的,或者我所做的是正确的,你必须手动包括它在布局或特定的视图,你需要它?

最新更新