我有一个提交按钮,包含以下 HTML:
<button type="submit" class="back-button" data-direction="back">Back</button>
Controller 方法定义如下:
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Index(SearchModel searchModel, string SearchBy, string dataDirection)
{
// Code removed for simplicity...
}
当我单击按钮时,我的模型已填充,但 dataDirection 属性未填充。
访问这些数据属性的正确方法是什么?
最佳答案
这不是 ASP .NET MVC 问题。对于提交按钮,浏览器仅在提交表单时发送“value”属性的值。按钮的名称用作参数名称,按钮的值用作参数值。
如果您想根据单击的按钮发送附加参数,则必须使用 Javascript 监听按钮的“单击”事件,并将自定义参数添加到发布数据或设置一些隐藏字段提交前的值。
最简单的方法是在表单中放置一个名为“Direction”的隐藏字段,单击监听按钮将其值设置为“后退”或“下一个”。如果您有方向的默认值,或者您希望在回发后将最后一个方向值设置为隐藏字段,则可以在模型上放置“Direction”属性。
下面的代码展示了如何使用 jQuery 做到这一点:
<input type="hidden" name="Direction" value="@Model.Direction" id="fldDirection" />
<script type="text/javascript">
$("[type='submit']").on('click', function() {
if ($(this).data('direction')) {
$("#fldDirection").val($(this).data('direction'));
}
}
</script>
关于asp.net-mvc-5 - 在 ASP.Net Core MVC Controller 中访问提交按钮的数据属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37999774/