在 MVC 中使用来自 JavaScript 的字符串类型参数调用操作
calling action with string type parameter from JavaScript in MVC
我的控制器中有以下动作:
public ActionResult ShowContactTel(string tel)
{
return PartialView("ContactInfoView", tel);
}
我通过 JavaScript 调用上述操作,如下所示:(通过单击按钮触发)
function ShowTel(){
var e="@Model.TelShow";
$.get("ViewProfile/ShowContactTel", e).then(
function (r) {
$('#divTel').innerHTML = r;
});
}
但是 action 的输入参数接收到空值(通过设置断点),因此 return 不需要的输出。
备注一:
我为 ShowTel()
函数尝试了以下代码,但结果没有改变:
var str = "@Model.TelShow";
$.ajax({
type: 'GET',
url: '@Url.Content("~/ViewProfile/ShowContactTel")',
data: str,
success: function (dd) {
$('#divTel').innerHTML = dd;
}
});
和
var str = "@Model.TelShow";
$.ajax({
url: "ViewProfile/ShowContactTel",
type: 'GET',
data: str
}).then(function (r) {
$('#divTel').innerHTML = r;
});
我也试过 type: 'POST'
但还是不行。
备注2:
在 ShowTel()
函数中使用 debugger
命令,我发现 @Model.TelShow
具有真实值。
有什么问题?
您当前的代码(第一种方法)正在传递 e
变量的值作为 $.get
调用的数据参数。 jQuery $.get
方法会将其作为查询字符串值发送。因此,您的代码正在进行如下 URL.
的 get 调用
/ViewProfile/howContactTel?testValue
假设 testValue
是变量 e
的值
您的操作参数名称是 tel
。因此,发送一个带有 属性 和该名称的 js 对象。
同时使用 jquery html
方法来更新 div.
的内部 html
$.get("/ViewProfile/ShowContactTel", { tel: e })
.then(function (r){
$('#divTel').html(r);
});
我还建议使用 Url 辅助方法来为操作方法生成正确的 URLs。
var url = "@Url.Action("ShowContactTel","ViewProfile");
$.get(url, { tel: e }).then(function (r){
$('#divTel').html(r);
});
我的控制器中有以下动作:
public ActionResult ShowContactTel(string tel)
{
return PartialView("ContactInfoView", tel);
}
我通过 JavaScript 调用上述操作,如下所示:(通过单击按钮触发)
function ShowTel(){
var e="@Model.TelShow";
$.get("ViewProfile/ShowContactTel", e).then(
function (r) {
$('#divTel').innerHTML = r;
});
}
但是 action 的输入参数接收到空值(通过设置断点),因此 return 不需要的输出。
备注一:
我为 ShowTel()
函数尝试了以下代码,但结果没有改变:
var str = "@Model.TelShow";
$.ajax({
type: 'GET',
url: '@Url.Content("~/ViewProfile/ShowContactTel")',
data: str,
success: function (dd) {
$('#divTel').innerHTML = dd;
}
});
和
var str = "@Model.TelShow";
$.ajax({
url: "ViewProfile/ShowContactTel",
type: 'GET',
data: str
}).then(function (r) {
$('#divTel').innerHTML = r;
});
我也试过 type: 'POST'
但还是不行。
备注2:
在 ShowTel()
函数中使用 debugger
命令,我发现 @Model.TelShow
具有真实值。
有什么问题?
您当前的代码(第一种方法)正在传递 e
变量的值作为 $.get
调用的数据参数。 jQuery $.get
方法会将其作为查询字符串值发送。因此,您的代码正在进行如下 URL.
/ViewProfile/howContactTel?testValue
假设 testValue
是变量 e
您的操作参数名称是 tel
。因此,发送一个带有 属性 和该名称的 js 对象。
同时使用 jquery html
方法来更新 div.
$.get("/ViewProfile/ShowContactTel", { tel: e })
.then(function (r){
$('#divTel').html(r);
});
我还建议使用 Url 辅助方法来为操作方法生成正确的 URLs。
var url = "@Url.Action("ShowContactTel","ViewProfile");
$.get(url, { tel: e }).then(function (r){
$('#divTel').html(r);
});