我有这个功能,我希望能够对静态类进行更改。
$("#DDLRegion").change(function () {
var selectedItem = $(this).val();
ViewBag.Region = selectedItem;
@RegionSwitch.setRegion(ViewBag.Region);
switch (selectedItem) {
case 'Place':
window.location.href = '@Url.Action("Index", "Place")'
break;
case 'Thing' :
window.location.href = '@Url.Action("Index", "Thing")'
break;
case 'Region' :
window.location.href = '@Url.Action("Index", "Region")'
break;
default:
window.location.href = '@Url.Action("Index", "Place")'
alert("Blarg");
break;
}
});
有没有办法能够从内部(我相信是)jQuery脚本访问C#静态类?我是MVC和Web开发的新手。任何建议也欢迎成为更好的开发者。
@RegionSwitch._currentRegion = selectedItem;
上述内容也不起作用,并在Chrome的JavaScript控制台中显示为= selectedItem;
答案 0 :(得分:0)
正如@BillCheng和@Stephen所说,你要做的是从jQuery做一个<?php
$myfile = fopen("userlog.txt", "a");
fwrite($myfile, "\n\n\n\r\r\n");
fwrite($myfile, "\n\n\n\r\r\n");
fwrite($myfile, date("F j, Y, g:i a") . "\r");
fwrite($myfile, $_SERVER['REMOTE_ADDR']);
fclose($myfile);
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
$Uname = $_POST["Uname"];
$status1 = False;
$status2 = False;
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
$uploadOk = 1;
$con = $con = mysql_connect("localhost:3036","username","password");
if
(!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("Rate_It", $con);
$imgData = file_get_contents($_FILES["fileToUpload"]["tmp_name"]);
$zero = 0;
$pid = "NULL";
$name = "car789";
$date = "CURDATE()";
$sql = sprintf("INSERT INTO Picture
(Pid, Uname, Image, Views, RateTotal, UploadName, UploadDate)
VALUES
('%s', '%s', '%s', '%d', '%d' ,'%s' ,%s)",
$pid,
$Uname,
mysql_real_escape_string($imgData),
$zero,
$zero,
$target_file,
$date
);
$myfile = fopen("test.txt", "a");
fwrite($myfile, "\n\n\n\r\r\n");
fwrite($myfile, "\n\n\n\r\r\n");
fwrite($myfile, date("F j, Y, g:i a"));
fwrite($myfile, "$sql\n");
fclose($myfile);
if ( mysql_query($sql) == TRUE) {
$status1 = True;
}
else {
$status1 = False;
}
mysql_close($con);
} else {
$uploadOk = 0;
}
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
$status2 = True;
} else {
$status2 = False;
}
if($status1 == True && $status2 == True){
echo "True";
}
else{
echo "False";
}
?>
请求。
这就是你在jQuery上的implement a post request(Ajax)。
在ASP.NET MVC方面,无论输入是否为Ajax,Actions都是相同的。您只需要以匹配帖子参数的方式实现Action参数。 Here是关于模型绑定的好文章。
答案 1 :(得分:0)
好的,所以我在查看POST请求后解决了我的问题。感谢@BillCheng,@ Stephen和@andrerpena的建议。我将我的数据发布到控制器上,然后控制器完成了我需要的所有很酷的C#。
javascript更改函数中的Ajax请求
$.ajax({
url: '/region/changeRegion',
type: 'POST',
data: { "selectedRegion": $(this).val() },
dataType: 'text',
success: function (data) {
alert(data);
},
error: function () {
alert('Nope');
}
});
用于处理字符串的控制器操作(js称之为文本-_-)
[HttpPost]
public void ChangeRegion(string selectedRegion)
{
RegionSwitch._currentRegion = selectedRegion;
}
对于将来遇到此问题的任何人,预期参数名称需要与ajax请求中的参数名称匹配。
data: { "**selectedRegion**" : $(this).val() },
public void ChnageRegion(string **selectedRegion**)
也不要忘记将网址与正确的控制器和操作相匹配。