簡體   English   中英

mvc3將按鈕名稱傳遞給發布

[英]mvc3 passing button name to post

按鈕名稱未傳遞給我的操作方法。

這是我的觀點(簡體):

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

這是控制器方法:

[HttpPost, ActionName("HandleSubmit")]
public ActionResult HandleSubmit(int? id, string btnSubmit)
{
    switch (btnSubmit)
    {
        case "AddLineItem":
            break;
        case "AddNewOrder":
            break;
    }

    return View("OrderDetails");
}

btnSubmit值始終為null。 我需要做些什么?

name是綁定到您的方法簽名的內容,而不是id

使用以下內容:

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

    if(!string.IsNullOrEmpty(AddLineItem)) {

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

    }

    /* ... code ... */
}

請記住,表單發布會將name/value對的multipart/form-data集合發送到服務器。

您不會以任何方式發送任何名稱或值的按鈕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");
    }

您的視圖可能類似於以下內容:

@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" />
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM