Asp.net mvc 3 mvc3将按钮名称传递给post

Asp.net mvc 3 mvc3将按钮名称传递给post,asp.net-mvc-3,Asp.net Mvc 3,按钮名称未传递给我的操作方法 以下是我的观点(简化): btnSubmit值始终为空。我需要做哪些不同的事情?绑定到方法签名的是名称,而不是id 使用以下命令: public ActionResult HandleSubmit(string AddLineItem, string AddNewOrder) { /* ... code ... */ if(!string.IsNullOrEmpty(AddLineItem)) { } else if(!strin

按钮名称未传递给我的操作方法

以下是我的观点(简化):


btnSubmit值始终为空。我需要做哪些不同的事情?

绑定到方法签名的是
名称,而不是
id

使用以下命令:

public ActionResult HandleSubmit(string AddLineItem, string AddNewOrder)
{
    /* ... code ... */

    if(!string.IsNullOrEmpty(AddLineItem)) {

    }
    else if(!string.IsNullOrEmpty(AddNewOrder)) {

    }

    /* ... code ... */
}
@model MvcApplication3.Controllers.MyModel

@using (Html.BeginForm("HandleSubmit", "Home", FormMethod.Post))
{    
  @Html.EditorFor(x => Model.Order)
  <input id="btnAddLineItem" type="submit" name="AddLineItem" value="AddLineItem" />
}

请记住,表单post将向服务器发送
多部分/表单数据
集合的
名称/值
对。

绑定到方法签名的是
名称
,而不是
id

使用以下命令:

public ActionResult HandleSubmit(string AddLineItem, string AddNewOrder)
{
    /* ... code ... */

    if(!string.IsNullOrEmpty(AddLineItem)) {

    }
    else if(!string.IsNullOrEmpty(AddNewOrder)) {

    }

    /* ... code ... */
}
@model MvcApplication3.Controllers.MyModel

@using (Html.BeginForm("HandleSubmit", "Home", FormMethod.Post))
{    
  @Html.EditorFor(x => Model.Order)
  <input id="btnAddLineItem" type="submit" name="AddLineItem" value="AddLineItem" />
}

请记住,表单post将向服务器发送
多部分/表单数据
集合的
名称/值
对。

您不会以任何方式发送任何名称或值的按钮ID

我建议您制作一个具有以下两个属性的模型:

在get方法中,创建模型的实例:

    public ActionResult HandleSubmit()
    {
        MyModel model = new MyModel();
        return View(model);
    }        
在post方法中,使用模型的属性获取值

    [HttpPost, ActionName("HandleSubmit")]
    public ActionResult HandleSubmit(MyModel model)
    {
        switch (model.Order)
        {
            case "AddLineItem":
                break;
            case "AddNewOrder":
                break;
        }

        return View("OrderDetails");
    }
您的视图可以如下所示:

public ActionResult HandleSubmit(string AddLineItem, string AddNewOrder)
{
    /* ... code ... */

    if(!string.IsNullOrEmpty(AddLineItem)) {

    }
    else if(!string.IsNullOrEmpty(AddNewOrder)) {

    }

    /* ... code ... */
}
@model MvcApplication3.Controllers.MyModel

@using (Html.BeginForm("HandleSubmit", "Home", FormMethod.Post))
{    
  @Html.EditorFor(x => Model.Order)
  <input id="btnAddLineItem" type="submit" name="AddLineItem" value="AddLineItem" />
}
@model mvcapapplication3.Controllers.MyModel
@使用(Html.BeginForm(“HandleSubmit”、“Home”、FormMethod.Post))
{    
@EditorFor(x=>Model.Order)
}

您不能以任何方式以任何名称或值发送按钮ID

我建议您制作一个具有以下两个属性的模型:

在get方法中,创建模型的实例:

    public ActionResult HandleSubmit()
    {
        MyModel model = new MyModel();
        return View(model);
    }        
在post方法中,使用模型的属性获取值

    [HttpPost, ActionName("HandleSubmit")]
    public ActionResult HandleSubmit(MyModel model)
    {
        switch (model.Order)
        {
            case "AddLineItem":
                break;
            case "AddNewOrder":
                break;
        }

        return View("OrderDetails");
    }
您的视图可以如下所示:

public ActionResult HandleSubmit(string AddLineItem, string AddNewOrder)
{
    /* ... code ... */

    if(!string.IsNullOrEmpty(AddLineItem)) {

    }
    else if(!string.IsNullOrEmpty(AddNewOrder)) {

    }

    /* ... code ... */
}
@model MvcApplication3.Controllers.MyModel

@using (Html.BeginForm("HandleSubmit", "Home", FormMethod.Post))
{    
  @Html.EditorFor(x => Model.Order)
  <input id="btnAddLineItem" type="submit" name="AddLineItem" value="AddLineItem" />
}
@model mvcapapplication3.Controllers.MyModel
@使用(Html.BeginForm(“HandleSubmit”、“Home”、FormMethod.Post))
{    
@EditorFor(x=>Model.Order)
}