我的视图中有一个列表,列表中的每一行都包含基于状态的查看或提交按钮。应用程序完成后,单击查看按钮,然后单击编辑并提交按钮。当用户单击任何按钮时,我需要检查单击了哪个按钮,然后将操作重定向到相应的控制器。这里的挑战是如何将点击的按钮以及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中执行操作吗?
答案 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))
}