如何从 JavaScript 将值传递给 razor 变量?

Razor 是一种在 ASP.NET Web 应用程序中使用的模板引擎,用于将 C# 代码嵌入到 HTML 中。要从 JavaScript 将值传递给 Razor 变量,你需要理解 Razor 在服务器端和客户端之间的交互方式。

由于 Razor 是在服务器端执行的,JavaScript 是在客户端执行的,它们之间的直接变量传递是不可能的。然而,你可以通过一些间接的方式将 JavaScript 中的值传递给 Razor。

1. AJAX 请求

使用 AJAX 请求可以向服务器发送数据并在 Razor 页面中处理。示例代码如下:

在 JavaScript 中发送 AJAX 请求:

let valueToSend = "这是要传递给Razor的值";

$.ajax({
  type: 'POST',
  url: '/Controller/Action', // 指向处理请求的服务器端方法
  data: { value: valueToSend }, // 发送给服务器的数据
  success: function(response) {
    // 请求成功后的处理
    console.log("成功传递给Razor");
  },
  error: function(error) {
    // 请求失败时的处理
    console.log("传递给Razor失败");
  }
});

在服务器端的 Razor 页面或者控制器中接收数据:

[HttpPost]
public ActionResult Action(string value)
{
// 在这里处理传递过来的值 value
return Json(new { success = true }); // 返回一个 JSON 响应
}

2. 将值存储在 HTML 元素属性中

另一种方法是将 JavaScript 中的值存储在 HTML 元素的属性中,然后在 Razor 中获取这个属性的值。示例代码如下:

在 JavaScript 中设置 HTML 元素的属性:

let valueToSend = "这是要传递给Razor的值";
$('#razorValueHolder').data('value', valueToSend);

 

在 Razor 中获取属性的值:

@{
var receivedValue = ViewBag.RazorValue; // 在服务器端使用 ViewBag 或 Model 接收值
}

 

这个例子中,JavaScript 将值存储在一个带有特定 ID 的 HTML 元素的数据属性中,然后 Razor 通过 ViewBag 或 Model 在服务器端获取这个值。

记住,Razor 是在服务器端执行的,而 JavaScript 是在客户端执行的,因此在两者之间传递值需要利用服务器和客户端之间的通信机制,例如 AJAX 请求或在 HTML 元素属性中存储值。

THE END
分享
二维码
海报
如何从 JavaScript 将值传递给 razor 变量?
Razor 是一种在 ASP.NET Web 应用程序中使用的模板引擎,用于将 C# 代码嵌入到 HTML 中。要从 JavaScript 将值传递给 Razor 变量,你需要理解 Razor 在服务器端和客户端之间的交互方式。
<<上一篇
下一篇>>