Hai*_*yes 5 asp.net-mvc asp.net-core
我需要传递单击哪个按钮来提交表单。但控制器中未接收到隐藏输入。下面是我的代码片段
查看型号:
public class DocumentViewModel
{
public int Id { get; set; }
public int ActionId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
剃刀(cshtml):
<form....>
<input id="docActionId" name="docActionId" asp-for="ActionId" type="hidden" value="initialValue" />
</form>
Run Code Online (Sandbox Code Playgroud)
JavaScript:
$("#save_btn").on("click", function ()
{
$("#docActionId").val("test1");
});
$("#submit_btn").on("click", function ()
{
$("#docActionId").val("test2");
});
Run Code Online (Sandbox Code Playgroud)
我尝试在警报功能中显示当前值(如果它发生了变化)并且确实发生了变化。
在调试时,在我的控制器/操作中,我得到 ActionId 变量的空值。我认为这很简单,但我不知道我做错了什么。
请帮忙。我现在已经被困在这个问题里2个小时了。提前致谢。
删除name="docActionId"html 属性,它们将由 Razor 自动生成。
具体按asp-for="ActionId"属性。
此外,这不起作用的原因是因为该name属性是docActionId != ActionId对象的属性的名称。所以它不知道将其绑定到哪里。
<form id="myform">
<input id="docActionId" asp-for="ActionId" type="hidden" value="initialValue" />
<button type="submit" id="save">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)
尝试这个 javascript,也许表单是在附加值之前提交的
var saveButton = documnet.getElementById('save')
saveButton.addEventListener('click', function(e) {
e.stopPropagation();
documnet.getElementById('docActionId').value = "test value"
documnet.getElementById('myform').submit()
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14222 次 |
| 最近记录: |