有一个windows.open()的问题;
当函数触发时,它应该向控制器发送参数
firstname
,lastname
,dob
和gender
,但我遇到的问题只是发送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);
}
}
答案 0 :(得分:1)
您的window.open
参数存在重大连接问题。
您使用+ +
和firstname, "&"
打破了连接,忘了在,
第2和第3个参数之前传递逗号(window.open
)。
您还混合了firstname
和lastname
变量。
试试这个:
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');