繁体   English   中英

从View向控制器传递数据时,FormCollection中没有值

[英]No values comes into FormCollection while passing data from View to controller

我正在尝试以编辑模式保存实体。 我想使用FormCollection将View的值传递给控制器​​,但没有值进入控制器。

这是标记:

 @using (Html.BeginForm("Edit", "Product", FormMethod.Post, new { enctype = "multipart/form-data", id = "frmCreate" }))
{
    <div class =" row-fluid Span12" style ="margin-bottom :15px">
        <div class="span6" >
            <div class ="span4">
                <label>Product Name</label>
            </div>
            <div class ="span6">
                 <input type="text" value="@ViewBag.Name" id="ProductName" name="ProductName" style="height:20px; width:100%;" />
            </div>
        </div>
        <div class="span6" >
            <div class="span4" >
            <label > Product Code</label>
        </div>
        <div class="span6" >
            <input  type="text" value="@ViewBag.SectionCode" id="SectionCode"/> 
        </div>
    </div>
    <div class="span11" style="text-align:right">
        <input class="btn btn-primary" type="submit" value="Save" id="Edit"/>
        <button class="btn btn-default">Cancel</button>
    </div>
           }   

这是我的控制器代码

[HttpPost]
public ActionResult Edit(FormCollection form)
{
    Product product = new Product();
    product.SectionCode = Convert.ToString(form["SectionCode"]);
    product.Name = Convert.ToString(form["Name"]);

    return RedirectToAction("SaveData", oProductNew);
}

FormCollection没有价值。

可能您的视图代码不属于表单。 将其放在表单中,然后尝试提交。

尝试一下。 [HttpGet]方法中,执行以下操作:

    [HttpGet]
    public ActionResult Edit()
    {
        Product product = new Product();
        return View(product);
    }

对于[HttpPost]将您的代码更新为(与绑定结合使用应该可以正常工作):

    [HttpPost]
    public ActionResult Edit(Product product)
    {
        return RedirectToAction("SaveData", product);
    }

最后,您可以更新视图以将产品作为视图模型:

    @model YourNamespace.Product @* Page View Model *@      
    @using (Html.BeginForm("Edit", "Product", FormMethod.Post, new { enctype = "multipart/form-data", id = "frmCreate" }))
    {
        <div class =" row-fluid Span12" style ="margin-bottom :15px">
            <div class="span6" >
                <div class ="span4">
                    <label>Product Name</label>
                </div>
                <div class ="span6">
                    @Html.TextBoxFor(x => x.ProductName, new { @Style = "height:20px; width:100%;" }) @* TextBoxFor Extension Method *@
                </div>
            </div>
            <div class="span6" >
                <div class="span4" >
                <label > Product Code</label>
            </div>
            <div class="span6" >
                @Html.TextBoxFor(x => x.SectionCode)  @* TextBoxFor Extension Method *@          
            </div>
        </div>
        <div class="span11" style="text-align:right">
            <input class="btn btn-primary" type="submit" value="Save" id="Edit"/>
            <button class="btn btn-default">Cancel</button>
        </div>
    }   

@Html扩展方法将创建自动绑定数据所需的所有名称和ID。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM