Jquery 将参数从视图传递到控制器中的操作
我是MVC的初学者 我的视图代码Jquery 将参数从视图传递到控制器中的操作,jquery,sql-server,asp.net-mvc-4,Jquery,Sql Server,Asp.net Mvc 4,我是MVC的初学者 我的视图代码 <script> $(function () { $("#dialog-modal").dialog({ autoOpen: false, width: 400, height: 500, resizable: false, title: 'Accounts', modal: true, open: function (event,
<script>
$(function () {
$("#dialog-modal").dialog({
autoOpen: false,
width: 400,
height: 500,
resizable: false,
title: 'Accounts',
modal: true,
open: function (event, ui) {
var ln = '@Html.Raw(Json.Encode(Model.ln))';
var profileID = '@Html.Raw(Json.Encode(Model.profileID))';
var title = '@Html.Raw(Json.Encode(Model.title))';
var active = '@Html.Raw(Json.Encode(Model.active))';
alert(active);
var link = '@Url.Action("accountPartial", "BillingProfile")?ln=' + ln + '&profileID=' + profileID + '&title=' + title + '&active=' + active;
//link = link.replace(-1, ln);
//link = link.replace(-2, profileID);
$(this).load(link);
},
buttons: {
"Close": function () {
$(this).dialog("close");
}
},
show: {
effect: "blind",
duration: 200
},
hide: {
effect: "blind",
duration: 200
}
});
$("#opener-modal").click(function () {
$("#dialog-modal").dialog("open");
});
});
</script>
$(函数(){
$(“#对话框模式”).dialog({
自动打开:错误,
宽度:400,
身高:500,
可调整大小:false,
标题:“账户”,
莫代尔:是的,
打开:功能(事件、用户界面){
var ln='@Html.Raw(Json.Encode(Model.ln));
var profileID='@Html.Raw(Json.Encode(Model.profileID));
var title='@Html.Raw(Json.Encode(Model.title));
var active='@Html.Raw(Json.Encode(Model.active));
警报(活动);
var link='@Url.Action(“accountPartial”,“BillingProfile”)?ln='+ln+'&profileID='+profileID+'&title='+title+'&active='+active;
//链接=链接。替换(-1,项次);
//link=link.replace(-2,profileID);
$(此).load(链接);
},
按钮:{
“关闭”:函数(){
$(此).dialog(“关闭”);
}
},
展示:{
效果:“盲”,
持续时间:200
},
隐藏:{
效果:“盲”,
持续时间:200
}
});
$(“#开启器模式”)。单击(函数(){
$(“#对话框模式”)。对话框(“打开”);
});
});
我的控制器动作
public ActionResult accountPartial(string title,bool active,int ln = 0, int profileID = 0)
{
List<AccountCode> model = db.AccountCodes.ToList();
ViewBag.ln = ln;
ViewBag.profileID = profileID;
ViewBag.title = title;
ViewBag.active = active;
return PartialView("_AccountPartial", model);
public ActionResult accountPartial(字符串标题,bool活动,int ln=0,int profileID=0)
{
列表模型=db.AccountCodes.ToList();
ViewBag.ln=ln;
ViewBag.profileID=profileID;
ViewBag.title=标题;
ViewBag.active=活动;
返回PartialView(“\u AccountPartial”,model);
在这里,当我输入有空格的标题(例如:Check Account)时,我的控制器操作“accountpartial”不会被调用
当我输入没有空格的标题时(例如:check),我的actionName就会被调用
问题出在哪里?
提前感谢可能是标题中的空格未正确进行url编码。请尝试使用
encodeURIComponent()
解决此问题
var link = '@Url.Action("accountPartial", "BillingProfile")?ln=' + ln + '&profileID=' + profileID + '&title=' + encodeURIComponent(title) + '&active=' + active;
只是一个想法。不能确定。u是指哪个标题?对话框的标题还是您在action method中传递的标题?标题是指我正在传递到Url的参数。actionAndrew您完全正确,它工作得完美无缺。非常感谢您的帮助。您节省了我的时间:)@Kumar没问题。很高兴我能提供帮助。