我们使用了百度编译器后再MVC传值出现的问题。
程序员文章站
2022-05-26 08:40:25
...
我们定义的百度编译器使用,
<form class="layui-form" action="/Home/TraveThink" method="post" enctype="multipart/form-data">
<div class="set_btn layui-upload" id="_j_cover_do">
<a role="button" title="设置头图" class="a_set _j_addtoppiclabel" id="img"><i></i><span>设置头图</span></a>
<img id="imgupload" src="~/images/lvyoutop.jpg" width="1000" height="480" />
<input type="hidden" name="TravelInformationImgurl" id="imgurl" value="" />
</div>
<div class="layout__panel layout__panel--articletitle-bar" style="width: 100%; height: 56px; overflow:!important visible; ">
<div class="article-bar flex flex--row flex--align-center">
<div class="article-bar__input-box"><input maxlength="100" placeholder="输入文章标题" name="TravelInformationTitle" class="article-bar__title article-bar__title--input text-input"> <span class="article-bar__number"><span class="">0</span>/100</span></div> <div class="article-bar__user-box flex flex--row">
<button type="submit" class="btn btn-publish layui-btn" lay-submit="" lay-filter="demo1">发布文章</button>
</div>
</div>
</div>
<script id="editor" type="text/plain" name="TravelInformationText" style="width:1000px;height:1500px;">
</script>
<input type="hidden" name="RegisterId" value="@Model" />
</form>
当我们提交到后台时:
<script src="~/layui/layui.js"></script>
<script>
function ajaxrequest(jsonstr) {
var imgurl = (jsonstr.TravelInformationImgurl).split('/');
console.log(imgurl);
$.ajax({
url: "/Home/TraveThink",
data:{ TravelInformationTitle: jsonstr.TravelInformationTitle, TravelInformationImgurl:imgurl[imgurl.length-1] , TravelInformationText: jsonstr.TravelInformationText, RegisterId: jsonstr.RegisterId },
type: "post",
dataType: "json",
success: function (data) {
if (data==1) {
return layer.msg('发布成功');
}
},
error: function (err) {
console.log(err);
}
});
}
layui.use(['form', 'layedit', 'laydate', 'upload'], function (maxval) {
var form = layui.form
, layer = layui.layer
, layedit = layui.layedit
, laydate = layui.laydate;
var $ = layui.jquery
, upload = layui.upload;
$("#imgurl").val( $('#imgupload').attr('src'));
//普通图片上传
var uploadInst = upload.render({
elem: '._j_addtoppiclabel'
, url: '/Home/imaesgUpload' //改成您自己的上传接口
, before: function (obj) {
//预读本地文件示例,不支持ie8
obj.preview(function (index, file, result) {
$('#imgupload').attr('src', result); //图片链接(base64)
});
}
, done: function (res) {
console.log(res);
//如果上传失败
if (res.code == 200) {
$('#imgupload').attr('src', "/images/" + res.data);
$("#imgurl").val(res.data);
return layer.msg('上传成功');
}
//上传成功
}
, error: function () {
//演示失败状态,并实现重传
var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function () {
uploadInst.upload();
});
}
});
//监听提交
form.on('submit(demo1)', function (data) {
var jsonstr = JSON.stringify(data.field);
console.log(data.field.TravelInformationText);
if (data.field.TravelInformationText == "") {
layui.msg("随便写几句吧");
return false;
}
ajaxrequest(data.field);
return false;
});
});
</script>
会出现这样的错:
a.先看页面:
点击发布,他就会报这样的错:
未提供参数,
我本来就输入的啊。
解决方案:
[HttpPost]
[ValidateInput(false)]
public ActionResult TraveThink(TravelInformation travel)
{
TravelInformation_dal travelInformation_Dal = new TravelInformation_dal();
int row = travelInformation_Dal.addTravelInformation(travel);
return Json(row);
}
需要加上
[HttpPost]
[ValidateInput(false)]
这段。
如果在报错,也在config.xml加上:
<system.web>
<compilation debug="true" targetFramework="4.7.2" />
<httpRuntime targetFramework="4.7.2" />
<pages validateRequest="false" />
</system.web>
主要加上 <pages validateRequest="false" />
我们再来看效果:
先填写好文章:
开始发布:
可以看到值已经获取到,应该发布成功了。
可以了。
问题解决。
上一篇: Python实现高效求解素数代码实例
下一篇: 开花(在b数组中二分查找a数组元素)