如何在MVC控制器中调用Javascript变量
How to call Javascript Variable in MVC Controller?
这是我当前的代码。当我点击按钮时,控制器中的imageData
没有收到任何东西。但是,当我在javascript中使用document.write(images);
并删除$("#btnSave")
以显示是否有一个值,它显示iVBORw0KGgoAAAANSUhE....
这是我需要传递给控制器来保存图像对吗?我认为有一些错误在我的javascript传递值在控制器。
@using (Html.BeginForm("SampleCaptureImage", "Warehouse", FormMethod.Post))
{
<canvas id="canvas" style="max-width: 100%; height: auto; width: auto'9; display: block; margin-left: auto; margin-right: auto;" width="640" height="640"></canvas>
<input type="submit" name="btnsubmit" id="btnSave" value="Save Drawing" />
}
脚本<script type="text/javascript">
$("#btnSave").click(function () {
var images = document.getElementById("canvas").toDataURL("image/png");
images = images.replace('data:image/png;base64,', '');
$.post(
'@Url.Action("SampleCaptureImage","Warehouse")',
{ imageData: images },
handleSuccess
);
});
</script>
控制器public ActionResult SampleCaptureImage(string imageData)
{
string fileName = "CapturedImage.png";
string fileNameWitPath = Path.Combine(Server.MapPath("~/Images/Sanipex Captured Images"), fileName);
using (FileStream fs = new FileStream(fileNameWitPath, FileMode.Create))
{
using (BinaryWriter bw = new BinaryWriter(fs))
{
byte[] data = Convert.FromBase64String(imageData);
bw.Write(data);
bw.Close();
}
fs.Close();
}
return view();
}
因为你使用的是提交按钮,它会以默认方式运行而不是你使用的ajax方式
添加preventDefault()或将按钮类型更改为button
你可以阅读更多关于preventDefault()的信息,http://api.jquery.com/event.preventdefault/
是脚本内联或js文件?
试
$("#btnSave").click(function (e) {
e.preventDefault();
var images = document.getElementById("canvas").toDataURL("image/png");
images = images.replace('data:image/png;base64,', '');
//$.post(
//'@Url.Action("SampleCaptureImage","Warehouse")',
// { imageData: images },
// handleSuccess
// );
$.post('@Url.Action("SampleCaptureImage","Warehouse")', { imageData: images })
.done(function( data ) {
alert( "Data Loaded: " + data );
});
});
您的控制器SampleCaptureImage没有HttpPost属性,默认情况下它只接收HTTP GET请求。
您还可以考虑另一种提交表单的方法,而不是使用提交类型的按钮。你可以设置一个普通的按钮,比如:
@using (Html.BeginForm("SampleCaptureImage","Warehouse", FormMethod.Post, new { id = "SubmitForm"}))
{
<a href="#" id="SubmitBtn" class="btn btn-primary btn-large">Submit</a>
}
然后在javascript中这样做:
$("#SubmitBtn").click(function ()
{
$("#SubmitForm").submit();
});
并且在click()函数中,可以在提交之前做任何其他特殊的工作
相关文章:
- 我需要从php调用javascript或jquery
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- 使用html表单中的参数调用JavaScript函数
- 可以´t调用JavaScript中的函数
- 在按钮上调用Javascript函数
- 如何从Objective-C代码中调用javascript代码
- 当库在页脚中加载时,基于PHP条件调用Javascript
- 可以't在Jasmine中调用Javascript函数
- 在page_load事件上调用javascript函数
- 如何在ajax中调用javascript对象的方法
- 如何使用WPF调用JavaScript对象的函数
- 我们可以用参数对象集合而不是原始数据来调用JavaScript collection.reduce()方法吗
- 在新的浏览器选项卡上加载新的aspx页面后调用JavaScript函数
- 从附加文本调用javascript(订单车)
- 在线程循环中调用JavaScript
- 在指定时间后多次调用Javascript中的函数
- 未调用Javascript onscroll事件
- 如何正确调用Javascript中的匿名函数
- 从字符串调用javascript函数
- 无法从活动调用 javascript 函数