返回到控制器后,当模型属性未设置 [英] Model properties not set when returning to the controller for post

查看:218
本文介绍了返回到控制器后,当模型属性未设置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在这个失明盯着。当我点击视图保存,该模型被发送到控制器的保存方法没有设置值,他们都是默认值。
我在想什么?实际上,我用从其他项目完全相同的技术...
在我看来,将数据填充就好了,我可以编辑它,点击保存,code进入SetSiteTerms方法在控制器但现在没有从视图中的数据。 :-(
我知道这是一些简单和愚蠢的,但我就是不能看到它。

I'm going blind staring at this. When I click save on the view, the model being sent to the save method of the controller has no values set, they're all default values. What am I missing? I'm actually using the exact same technique from another project... The data is populated just fine in my view, I can edit it and click save, the code enters the SetSiteTerms method in the controller but has none of the data from the view. :-( I know this is something simple and dumb but I just can't see it yet.

型号:

Imports System.ComponentModel.DataAnnotations
Imports System.Runtime.Serialization

<KnownType(GetType(SiteToA))> _
Public Class SiteToA

    <ScaffoldColumn(False)> _
    Public Property ID As Integer = 0
    Public Property AgreementHTML As String = String.Empty
    Public Property AgreementName As String = String.Empty
    Public Property IsActive As Boolean = False

    Public Sub New()
        MyBase.New()
    End Sub
End Class

查看:

<%@ Control Language="VB" Inherits="System.Web.Mvc.ViewUserControl(Of Community_Portal_Admin.SiteToA)" %>
<% Using Html.BeginForm("SetSiteTerms", "SiteToA", FormMethod.Post, New With {.id = "SiteTermsForm"})%>


    <div class="gridFrame">
        <% Html.Telerik().EditorFor(Function(m) m.AgreementHTML) _
                    .Name("AgreementHTML") _ ' Name must be the same as the property name in the model
                    .Encode(True) _
                    .HtmlAttributes(New With {.style = "height:300px;"}) _
                    .Render()%>
        <br />
        <div class="smallFrameLeft">        
            <%: Html.ActionLink("Cancel", "Index", "Home", Nothing, New With {.class = "t-button", .Style = "font-size:12px;"})%>
        </div>
        <div class="smallFrameRight">
            <input type="submit" value="Save" class="t-button" />       
        </div>
    </div>
<% End Using%>

控制器:

Imports Telerik.Web.Mvc

Public Class SiteToAController
    Inherits System.Web.Mvc.Controller

    Function Index() As ActionResult
        Dim setting As SiteToA
        Try
            setting = SiteToARepository.One(Function(d) d.IsActive = True)
            ViewData.Model = setting
            Return PartialView()
        Catch ex As Exception
            Throw
        End Try
    End Function

    <HttpPost()> _
    Function SetSiteTerms(ByVal model As SiteToA) As ActionResult
        Dim setting As SiteToA
        Try
            setting = SiteToARepository.One(Function(d) d.ID = model.ID)
            TryUpdateModel(setting)
            If Not SiteToARepository.Update(setting) Then Throw New Exception("There was a problem during update")
            Return PartialView()
        Catch ex As Exception
            Return PartialView()
        Finally
            If Not setting Is Nothing Then
                setting.Dispose()
                setting = Nothing
            End If
        End Try
    End Function
End Class

编辑:
我已经更新了我的视图和控制器。为什么我的填充模型的任何想法,都可以在视图中编辑,但是当我用后保存按钮,发送到控制器的型号没有数据???

I've updated my view and controller. Any ideas why my model is populated, can be editing in the view but when I post with the save button, the model sent to the controller has no data???

推荐答案

我已经更新了原单后显示Telerik的所提供的答案,也是我与模型的其余问题是一个愚蠢的丢失:洛尔

I've updated the orginal post to show the answer provided by Telerik, also my problem with the rest of the model was a silly missing : lol

这篇关于返回到控制器后,当模型属性未设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆