Javascript 在脚本区域中访问的C#方法无法识别我的jQuery参数

Javascript 在脚本区域中访问的C#方法无法识别我的jQuery参数,javascript,c#,Javascript,C#,我试图在JavaScript中访问my C#方法,但该方法不接受本地参数,并表示该参数在当前上下文中不存在 var typeofServiceNumber = $("#serviceType").val(); @MyStaticClass.StringEncoding(Convert.ToString(typeofServiceNumber)); 上述typeofServiceNumber方法无法识别在响应流中返回HTML之前,在服务器端执行Razor代码 Javascript在生成的HTML

我试图在JavaScript中访问my C#方法,但该方法不接受本地参数,并表示该参数在当前上下文中不存在

var typeofServiceNumber = $("#serviceType").val();
@MyStaticClass.StringEncoding(Convert.ToString(typeofServiceNumber));

上述
typeofServiceNumber
方法无法识别

在响应流中返回HTML之前,在服务器端执行Razor代码

Javascript在生成的HTML中的客户端执行

因此,您不能将Javascript变量传递给Razor方法,并且您会收到消息typeOfServiceNumber无法识别

要被识别,它要么需要通过传递到视图(ViewBag、Model等)的数据在服务器端进行处理,要么需要在页面本身的Razor标记中声明和分配

编辑:澄清最后一点:

var typeofServiceNumber = $("#serviceType").val();
@MyStaticClass.StringEncoding(Convert.ToString(typeofServiceNumber))
这里的第一行都发生在最终用户的浏览器中

第二行全部发生在服务器上。您会看到错误消息,因为您试图将“typeofServiceNumber”传递给您的方法,而此时甚至没有声明变量

如果不确切知道你想要达到什么目的,我很难给出一个关于如何解决你问题的准确答案。但有两种可能性:

1) 您知道将网页提供给最终用户之前,
$(“#serviceType”).val()
将是什么,因为该值是在服务器端设置的

控制器:

public ActionResult MysteryController()
{
   ...your code here to work out what the service type is...

   ViewBag.serviceType = serviceType;

   return View();
}
视图:

我最初没有真正提到的另一种选择是:

2) 在加载页面之前,您不知道
$(“#serviceType”).val()的值是多少,因为它是由最终用户设置的,并且在将数据提交到服务器之前需要使用您的函数:


如果是这种情况,那么
@MyStaticClass.StringEncoding(Convert.ToString(typeofServiceNumber))
对您没有好处,您必须用JavaScript复制该函数,并将其包含在网页本身中。

在响应流中返回HTML之前,在服务器端执行Razor代码

Javascript在生成的HTML中的客户端执行

因此,您不能将Javascript变量传递给Razor方法,并且您会收到消息typeOfServiceNumber无法识别

要被识别,它要么需要通过传递到视图(ViewBag、Model等)的数据在服务器端进行处理,要么需要在页面本身的Razor标记中声明和分配

编辑:澄清最后一点:

var typeofServiceNumber = $("#serviceType").val();
@MyStaticClass.StringEncoding(Convert.ToString(typeofServiceNumber))
这里的第一行都发生在最终用户的浏览器中

第二行全部发生在服务器上。您会看到错误消息,因为您试图将“typeofServiceNumber”传递给您的方法,而此时甚至没有声明变量

如果不确切知道你想要达到什么目的,我很难给出一个关于如何解决你问题的准确答案。但有两种可能性:

1) 您知道将网页提供给最终用户之前,
$(“#serviceType”).val()
将是什么,因为该值是在服务器端设置的

控制器:

public ActionResult MysteryController()
{
   ...your code here to work out what the service type is...

   ViewBag.serviceType = serviceType;

   return View();
}
视图:

我最初没有真正提到的另一种选择是:

2) 在加载页面之前,您不知道
$(“#serviceType”).val()的值是多少,因为它是由最终用户设置的,并且在将数据提交到服务器之前需要使用您的函数:


如果是这样的话,
@MyStaticClass.StringEncoding(Convert.ToString(typeofServiceNumber))
对您没有好处,您必须用JavaScript复制该函数,并将其包含在网页本身中。

嗨,James,谢谢您的回答,我知道第四点,你能解释清楚一点吗?我已经扩展了我的答案,希望能提供一点更清晰的信息。嗨,詹姆斯,谢谢你的回答,我知道第四点,你能解释清楚一点吗?我已经扩展了我的答案,希望能提供一点更清晰的信息