通过JQuery打开一个新的浏览器窗口,而不是通过参数发送所有值

时间:2017-08-31 17:53:41

标签: javascript c# jquery asp.net window.open

有一个windows.open()的问题;

  • 框架:Asp.netMVC
  • 代码:C#,剃刀
  • 问题:jquery

当函数触发时,它应该向控制器发送参数 firstnamelastnamedobgender,但我遇到的问题只是发送firstname,其他参数为空。当我在客户端调试它时,它显示所有参数都有值但是当它调用action时它只发送一个参数。

$(document).ready(function() {

     $(".ViewGet").click(function () {
         var firstname = $(this).closest("tr").find(".firstname").text();
         var lastname = $(this).closest("tr").find(".lastname").text();
         var dob = $(this).closest("tr").find(".dob").text();
         var gender = $(this).closest("tr").find(".gender").text();

         window.open('@Url.Action("FindClientsFor","ClientSerach")?lastname=' + firstname, "&" + +"firstname=" + lastname + "&dob=" + dob + "&gender=" + 1 + 'popUpWindow', 'height=750, width=960, left=300, top=100, resizable=yes, scrollbars=yes, toolbar=yes, menubar=no, location=no, directories=no, status=yes');

     });
});

控制器

[HttpGet]
public ActionResult FindClients(string firstname, string lastname, string dob, int? gender,FormCollection collection)
{
     if (IsNullOrEmpty(firstname) || IsNullOrEmpty(lastname) || IsNullOrEmpty(dob) || gender == null)
     {
         return RedirectToAction("Index");
     }
     else
     {
         var obj = _repo.ClientSearchWithAll(firstname, lastname, dob, gender);
         //_repo.SortUserNames(obj);
         return View(obj);
     }
}

1 个答案:

答案 0 :(得分:1)

您的window.open参数存在重大连接问题。

您使用+ +firstname, "&"打破了连接,忘了在,第2和第3个参数之前传递逗号(window.open)。

您还混合了firstnamelastname变量。

试试这个:

window.open('@Url.Action("FindClientsFor","ClientSerach")?lastname=' + lastname + '&firstname=' + firstname+ '&dob=' + dob + '&gender=1', 'popUpWindow', 'height=750, width=960, left=300, top=100, resizable=yes, scrollbars=yes, toolbar=yes, menubar=no, location=no, directories=no, status=yes');