从javascript函数调用razor c#函数

时间:2014-12-24 05:26:16

标签: javascript c# asp.net razor

我在一个文件中有一个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>&nbsp;</text>
                    @Html.Raw(dataItem);
                 }
             }
}

我想从js xupdate()函数调用fileRead函数,并将string的值作为参数发送到fileRead。有没有办法做到这一点?

注意:我已经在cshtml文件中包含了html链接,我的功能完美无缺。另外我知道在调用c#函数时我必须包含一个文件扩展名。

2 个答案:

答案 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;