我正在使用ASP.Net 4.61,MVC5
我想从同一个Action中的3个按钮中捕获提交。
我正在使用ActionMethodSelectorAttribute
来捕捉按下哪个“提交”按钮。一个提交按钮正常工作。但是如下所示,如果我想在一个动作方法中捕获3个按钮,它不起作用,我不知道如何将List传递给属性。
点击Eng,Mat或ICT时,我想显示Clicked按钮的成绩列表。这3个按钮的性质几乎相同。他们转到数据库并提取由于主题
的数据FromValueRequiredAttribute.cs
public class FromValueRequiredAttribute : ActionMethodSelectorAttribute
{
public string ButtonName { get; set; }
public List<string> ButtonNameList { get; set; }
public override bool IsValidForRequest(ControllerContext controllerContext, MethodInfo methodInfo)
{
return controllerContext.Controller.ValueProvider.GetValue(ButtonName) != null;
}
}
所以,目前,我为这3个按钮指定了相同的名称,如下所示,并检查按钮的值以检测单击了哪个按钮。
<button type="submit" name="ViewSubject" class="btn btn-success" value="ENG">English</button>
<button type="submit" name="ViewSubject" class="btn btn-info" value="MAT">Maths</button>
<button type="submit" name="ViewSubject" class="btn btn-warning" value="ICT">ICT</button>
您能否建议我知道如何将列表传递给属性?
答案 0 :(得分:0)
点击Eng,Mat或ICT时,我想显示列表 Clicked按钮的等级。这3个按钮的性质是 几乎一样。
您只需在HttpPost操作方法中使用与提交按钮名称相同的参数即可。
[HttpPost]
public ActionResult Index(string ViewSubject)
{
var g = GradeService.GetExamGradesToUpdate(ViewSubject);
// do something with g
// to do : Return something
}
单击其中一个按钮(在表单中)时,参数ViewSubject将具有所单击按钮的值(value
属性值)。