我试图将整个Model对象与另一个参数一起传递给js函数launchMyActivity()。但功能是没有得到它。当我做aler(passedObject.length)
时,它会给出不明身份的信息。
我尝试了其他的东西,但没有任何效果。Referred this but didnt worked
我不确定我的实施有什么问题。
型号:
public class RequestDTO
{
public HttpRequestBase RequestDto { get; set; }
public List<User> Users { get; set; }
public string ActionId { get; set; }
public string UserSampleID { get; set; }
}
查看:
@model RequestDTO
<body>
@Scripts.Render("~/bundle/js/Area/SelectedStudentActivity")
<div class='popOver' style="z-index: 1012;">
<div id='popOverMsg'>Select the student you want to Launch this Activity for:..</div><br /><br />
@foreach(var user in Model.Users)
{
<a id="selectedAnchor" data-id="@user.id" style="cursor:pointer" onclick="launchMyActivity(@user.UserID,@Model)">@user.name</a><br />
}
</div>
</body>
JS:
function launchMyActivity(studentSISId, requestDTO)
{
alert("Lenght : " + requestDTO.length); //I get undefined here
//Below this I need to make AJAX call and pass this requestDTO object.
}
答案 0 :(得分:0)
您不应该将current_user
传递给javascript。首先,你发现这不会起作用。您的C#代码由Web服务器上的.Net运行时执行。 Javascript由客户端计算机上的Web浏览器执行。这两个是完全不同的执行系统,你不能真正在两者之间传递语义。
HttpRequestBase
,引用MSDN,&#34; 作为类的基类,使ASP.NET能够读取Web请求期间客户端发送的HTTP值&# 34 ;.你的浏览器上没有asp.net,这个类及它的方法对客户端没有意义。
您需要做的是定义模型。它是您的模型,您希望在服务器和客户端之间传递。从HttpRequesBase中提取对客户端有意义的任何信息,并将其放入模型中。模型通常是一个没有任何行为(方法)的简单类,并且只有许多属性可以简单地序列化为json。对于那样的模型,有很多很容易找到的信息。