如何检查单击了哪个按钮并将ID从视图传递给控制器

时间:2019-04-03 15:34:33

标签: c# asp.net-mvc

我的视图中有一个列表,列表中的每一行都包含基于状态的查看或提交按钮。应用程序完成后,单击查看按钮,然后单击编辑并提交按钮。当用户单击任何按钮时,我需要检查单击了哪个按钮,然后将操作重定向到相应的控制器。这里的挑战是如何将点击的按钮以及ID从视图传递给控制器​​?

查看:

这仅会将单击的按钮传递给控制器​​。但是我还需要传递ID。没有传递ID,我无法在“编辑和提交”页面和“查看”页面中显示任何数据。

@if (@list.Completed == true)
{
    <div class="col-md-2">
        <button class="btn" type="submit" name="View" id="View" value=View>View</button>

    </div>
}
else
{
    <div class="col-md-2 ">
        <button class="btn" type="submit" name="EditSubmit" id="EditSubmit" value=EditSubmit>Edit&Submit</button>
    </div>
}

控制器:

    [HttpPost]
    public ActionResult CompleteList(string View, string EditSubmit, int mylistid)
    {
        if (View == "View")
        {
            return RedirectToAction("Viewcontoller", "Primary");
        }
        if (EditSubmit == "EditSubmit")
        {
            return RedirectToAction("EditAndSubmit", "Secondary");
        }
        return View();

    }

有什么方法可以将ID和单击的按钮传递给控制器​​并在一个ActionResult中执行操作吗?

1 个答案:

答案 0 :(得分:0)

在您的控制器中,CompleteList方法中EditSubmit属性的值是按钮的value属性。这是根据按钮的名称进行映射的。因此,如果将值设置为等于ID,则将在控制器中接收到该值。例如,在下面的按钮定义中,控制器方法将在EditSubmit参数中接收值“ 12345”。

crazyBytes := []uint8("5760.00,5750.50")
    aString := string(crazyBytes)
strSlice := strings.Split(aString,",") // string representation of our array (of floats)
var floatz []float64
for _, x := range strSlice {
    fmt.Printf("At last, Float: %s \r\n",x)
    f,err := strconv.ParseFloat(x,64)
    if err != nil { fmt.Printf("Error: %s",err) }
    floatz = append(floatz, f)
    fmt.Printf("as float: %s \r\n", strconv.FormatFloat(f,'f',-1,64))
}