asp.net mvc razor view - 基于表单控件的值重定向

asp.net mvc razor view - redirect based on the value of a form control

我在 MVC 5 razor 视图中有以下锚标记:

<a href='@string.Format("https://www.abc.ac.fj/index.php?id=10820&Full_Name={0}&Email_Address=@Model.EmailContact", name)' target="_blank">Pay Now</a>

EmailContact 属性

的表单控件
@Html.TextBoxFor(m => m.EmailContact)

电子邮件地址,我正在尝试使用模型 属性,但它不起作用。当您单击此 link 时,呈现的值是“@Model.EmailContact”,但不是实际值。

请协助。

您格式化 href 值,您需要使用

<a href='@string.Format("https://www.abc.ac.fj/index.php?id=10820&Full_Name={0}&Email_Address={1}", name, Model.EmailContact)' target="_blank">Pay Now</a>

然而 @string.Format() 是在传递给视图之前在服务器上评估的剃刀代码,因此它将是 EmailContact 的初始值并且不考虑在中编辑的值文本框。

您需要使用 javascript/jquery 构建 url。将 link 更改为

<a id="pay" href="#" data-baseurl='@string.Format("https://www.abc.ac.fj/index.php?id=10820&Full_Name={0}", name)'>Pay Now</a>

并添加以下脚本

$('#pay').click(function() {
    var baseUrl = $(this).data('baseurl');
    var url = baseUrl + '&Email_Address=' + $('#EmailContact').val();
    window.open(url, '_blank')
});