-1

我在 stackoverflow 上发现了一堆关于数组和列表未绑定的信息,但我只有一个带有 4 个字符串的简单视图模型,并且帖子没有给我表单值:

视图模型:

public class ReferralNetworkSearchCriteria
{
    public string Email = "";
    public string FirstName = "";
    public string LastName = "";
    public string TaxSSN = "";
}

推荐网络控制器:

public ActionResult Search()
{
    ReferralNetworkSearchCriteria criteria = new ReferralNetworkSearchCriteria();
    return View(criteria);
}

[HttpPost]
public ActionResult Search(ReferralNetworkSearchCriteria criteria)

{
    return View(criteria);
}

看法:

@using OurCompany.ViewModels
@model ReferralNetworkSearchCriteria

@{
    ViewBag.Title = "Search Referral Network";
}

<h2>Search Referral Network</h2>

@using(Html.BeginForm("Search","ReferralNetwork",FormMethod.Post))
{
<fieldset>
    <div class="row">
        <div class="large-4 column">
            <label>Email</label>            
            @Html.TextBox("Email")
        </div>
        <div class="large-4 column">
            <label>
                First Name</label>
            @Html.TextBox("FirstName")
        </div>
        <div class="large-4 column">
            <label>
                Last Name</label>
            @Html.TextBox("LastName")
        </div>
    </div>
    <div class="row">
        <div class="large-4 column">
            <label>SSN/Tax ID</label>
            @Html.TextBox("TaxSSN")
        </div>
    </div>
    <div class="row">
        <div class="large-2 column">
            @Html.ActionLink("Back", "Index", "ReferralNetwork", null, new { @class = "button", @style="width:100%"})
        </div>
        <div class="large-2 column">        
            <button style="width:100%">Search</button>
        </div>
    </div>
</fieldset>    
}

*编辑:我还尝试使用@Html.TextBoxFor(x => x.Email)所有文本输入,但帖子上仍然没有值。谢谢

4

1 回答 1

5

Make use of properties, not fields/variables, otherwise the DataBinder simply wont't bind. I also recommend using the @Html.TextBoxFor(x => x.Email) when possible.

public class ReferralNetworkSearchCriteria
{
    public string Email { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string TaxSSN { get; set; }
}
于 2013-09-13T17:15:43.610 回答