开发者

modelbinding on ASP.NET MVC Razor engine failing

开发者 https://www.devze.com 2023-02-03 08:50 出处:网络
The model binding just isn\'t working for me - I always get NULL coming through to the controller! Any thoughts people?

The model binding just isn't working for me - I always get NULL coming through to the controller! Any thoughts people?

Rob

Here is my action signature:

public ActionResult SearchForUser(SearchForUserModel m)

Here is my Razor header model declaration:

@model WebOne.Models.Sta开发者_运维知识库tusIndexModel

StatusIndexModel is a composite model containing SearchForUserModel:

public class SearchForUserModel
{
    [Required(ErrorMessage = "Search information required")]
    [DisplayName("Contact Search")]
    public string Search { get; set; }
}

Here is my Razor:

    @using (Html.BeginForm("SearchForUser", "Status")) 
    {
    <div>
            <div class="editor-field">
                @Html.TextBoxFor(m => m.searchForUserModel.Search)
                <input type="submit" class="formbutton_small" value="Find" />
                <br />
                @Html.ValidationMessageFor(m => m.searchForUserModel.Search)
            </div>
    </div>
    }

Here is the generated HTML:

<form action="/Status/SearchForUser" method="post">        
    <div>
        <div class="editor-field">
            <input data-val="true" data-val-required="Search information required" id="searchForUserModel_Search" name="searchForUserModel.Search" type="text" value="" />
            <input type="submit" class="formbutton_small" value="Find" />
            <br />
             <span class="field-validation-valid" data-valmsg-for="searchForUserModel.Search" data-valmsg-replace="true"></span>
        </div>
    </div>
</form>


You need to specify the prefix:

public ActionResult SearchForUser(
    [Bind(Prefix="searchForUserModel")]SearchForUserModel m
)
0

精彩评论

暂无评论...
验证码 换一张
取 消