7

我将参数传递给@Url.Action,如下所示:

function showHistory()
{

myId= $("#id").val();
    //alert(myId);
    actionDialog.load("@Url.Action("ActionHistoryAjax", new {id = myId, sort = "abc"})", function   () {
        actionDialog.dialog('open');
    });
}

但给出错误“名称 myId 在当前上下文中不存在”。

我如何传递变量?

我解决了这个问题,这是解决方案:

function showHistory()
{

myId= $("#id").val();
//alert(myId);
actionDialog.load("@Url.Action("ActionHistoryAjax", new {id = "_Id", sort = "abc"})".replace("_Id", DeviceID), function   ()     {
 actionDialog.dialog('open');
});
}
4

3 回答 3

8

我用这个解决了它:

function showHistory()
{
    myId= $("#id").val();
    actionDialog.load("@Url.Action("ActionHistoryAjax", new {id = "_Id", sort = "abc"})".replace("_Id", DeviceID), function   ()     {
        actionDialog.dialog('open');
    });
}
于 2013-05-30T11:47:47.777 回答
2

您在这里混合了服务器端和客户端代码。您不能像这样将 Javascript 变量传递给 Url.Action 方法。

您需要执行以下操作:

function showHistory()
{
    myId= $("#id").val();
    actionDialog.load("@Url.Action("ActionHistoryAjax", new { sort = "abc"})" + 
                      "&id=" + encodeURIComponent(myId), function   () {
        actionDialog.dialog('open');
    });
}

或者从服务器模型加载该 ID。

于 2013-05-30T11:43:54.717 回答
-1
old one
function showHistory()
{

  myId= $("#id").val();
  //alert(myId);
  actionDialog.load("@Url.Action("ActionHistoryAjax", new {id = myId, sort = "abc"})", 
  function   () {
    actionDialog.dialog('open');
  });
}

新的一个

function showHistory()
{

 myId= $("#id").val();
 //alert(myId);
    actionDialog.load("@Url.Action("ActionHistoryAjax", new {id = "+ myId +", 
     sort =    "abc"})", function   () {
     actionDialog.dialog('open');
 });
}
于 2013-05-30T11:45:36.460 回答