为什么我的模型值为空,如果我不包装脚本代码中的单击事件
Why is my model value null if I don’t wrap the script code in a click event?
我在视图的末尾有一个javascript,它创建了一个选定复选框的数组。提交表单的按钮允许我访问表单集合和其他参数。如果我将单击事件附加到同一按钮以运行java脚本,则javascript中的数据将被发送,但表单收集参数为空。如果我从脚本中删除click函数,我的脚本模型参数为空,其他参数ok。
这是我的脚本数据如何得到控制器得到。
我使用一个模型:命名空间SchoolIn。视图模型{公共类registrmentoptionsvm{
public virtual string OptionID{ set;get;}
public virtual string UserChoice { set;get;}
}
}
[HttpPost]
public ActionResult Edit(int id, FormCollection formCollection, String[] options, List<EnrollmentOptionsVM> model, String[] instructorString, String[] selectedteacher,string[] selectedCourses, Student student, string course, Enrollment enrolls, Assignment assignment, String[] searchString)
<script type="text/javascript">
var $checkboxes = $('input[type="checkbox"]');
$(document).ready(function () {
var options= [];
$.each($checkboxes, function () {
if ($(this).is(':checked')) {
var item={ "UserChoice" : "checked", "OptionID": "YouCanSetIDHere"};
}
else
{
var item={ "UserChoice" : "unchecked", "OptionID": "YouCanSetIDHere"};
}
options.push(item);
})
$.ajax({ type:
'POST', url: '@Url.Action("Edit","Student")',
contentType: 'application/json',
data: JSON.stringify(options)
}).done(function (html) {
});
alert('success')
});
</script>
这是编辑帖子的签名。
[HttpPost]
public ActionResult Edit(int id, FormCollection formCollection, String[] options, List<EnrollmentOptionsVM> model, String[] instructorString, String[] selectedteacher,string[] selectedCourses, Student student, string course, Enrollment enrolls, Assignment assignment, String[] searchString)
我在脚本中放置了一个alert(),以确保它运行正常。为什么我的模型值为空,如果我不包装脚本代码在点击事件?
如果你的脚本在head标签中,那么当你引用复选框var $checkboxes = $('input[type="checkbox"]');
时,它们还没有在页面中,所以$checkboxes将是一个空的jQuery对象
您需要将$checkboxes = $('input[type="checkbox"]');
放入$(document).ready
函数
好了,我明白了。虽然我的Javascript和Razor发送到相同的动作,但它们的参数不会在同一时间发送到同一post。为了解决这个问题,我创建了一个不同的操作,并使用click函数来触发事件。
相关文章:
- 我的html表单无法验证.请参阅代码片段中的html代码和java脚本
- 使用脚本#编译代码(独立)
- 如何在脚本部分使用php部分代码中的变量
- 如何让C#代码在页面加载时运行的jquery脚本之后运行
- VS代码:在<脚本>标签
- html或java脚本代码在硬盘中创建一个文本文件
- 我的代码在<脚本>标记,但没有'不能在外部文件中工作
- 在Asp.net的TextBox中插入所需文本的java脚本代码
- php代码或脚本接受自动完成列表中文本框中的值
- 指令中的跟踪代码脚本
- Javascript:是否可以读取外部脚本的原始代码
- 是否有脚本/代码可以一次将链接属性添加到多个链接
- 如何在此脚本代码中正确设置此计算和变量
- 我可以在谷歌脚本编辑器(谷歌应用程序脚本)中调试JavaScript代码吗
- 谷歌应用程序脚本:如何在UI关闭后运行此代码
- 使用纬度和经度代码脚本生成谷歌地图
- 在ASP.net MVC 3应用程序的头文件中添加自定义代码/脚本
- 多个按钮到一个嵌入式代码/脚本
- 在标题标签中压缩代码/脚本
- 如何通过代码/脚本在Firefox中加载pkcs# 11设备?