我在一个文件中有一个html链接
<a href="#" onClick="xupdate('Home')" id="padlink">Home</a>
点击后我想要一个js函数(在另一个文件中,扩展名为js)来执行,即:
function xupdate(string) {
document.title = string;
//Call razor c# function
}
现在我在cshtml文件中有一个c#函数(它读取文件并显示它们的信息):
@helper fileRead(String file) {
var dataFile = Server.MapPath(file);
Array userData = File.ReadAllLines(dataFile);
foreach (string dataLine in userData) {
foreach (string dataItem in dataLine.Split(',')) {
//dataItem <text> </text>
@Html.Raw(dataItem);
}
}
}
我想从js xupdate()函数调用fileRead函数,并将string的值作为参数发送到fileRead。有没有办法做到这一点?
注意:我已经在cshtml文件中包含了html链接,我的功能完美无缺。另外我知道在调用c#函数时我必须包含一个文件扩展名。
答案 0 :(得分:2)
你不能直接从javascript调用C#函数,因为javascript在客户端执行而C#函数在服务器端执行。
所以你必须像AJAX一样调用它。
在控制器中定义您的函数并通过AJAX调用调用它。
答案 1 :(得分:1)
使用AJAX:
var ret = null;
$.ajax({
async: false,
url: "YourFunctionName_in_Controller",
dataType: "json",
success: function (data) {ret = data;}
});
return ret;