Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法将模型对象传递给javascript函数_Javascript_Jquery_.net_Asp.net Mvc 4 - Fatal编程技术网

无法将模型对象传递给javascript函数

无法将模型对象传递给javascript函数,javascript,jquery,.net,asp.net-mvc-4,Javascript,Jquery,.net,Asp.net Mvc 4,我试图将整个模型对象和另一个参数传递给js函数launchMyActivity()。但是函数没有得到它。当我执行aler(passedObject.length)时,它给出的是未识别的 我试过其他的方法,但都没用 我不确定我的实现有什么问题 型号: public class RequestDTO { public HttpRequestBase RequestDto { get; set; } public List<User> Users { get; set; }

我试图将整个模型对象和另一个参数传递给js函数launchMyActivity()。但是函数没有得到它。当我执行
aler(passedObject.length)
时,它给出的是未识别的

我试过其他的方法,但都没用

我不确定我的实现有什么问题

型号:

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>
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.
}

您不应该将
HttpRequestBase
传递给javascript。首先,正如你发现的那样,这是行不通的。您的C#代码由web服务器上的.Net运行时执行。Javascript由客户端计算机上的web浏览器执行。这两个是完全不同的执行系统,您无法在两者之间传递语义

HttpRequestBase
,引用MSDN,“作为使ASP.NET能够在Web请求期间读取客户端发送的HTTP值的类的基类”。您的浏览器上没有asp.net,该类及其方法在客户端上没有意义


您需要做的是定义您的模型。这是您想要在服务器和客户端之间传递的模型。从HttpRequestBase中提取对客户端有意义的任何信息,并将其放入模型中。一个模型通常是一个没有任何行为(方法)的简单类,并且只有一些简单地序列化为json的属性。对于这样的模型,有很多很容易找到的信息如何使用这一点。

Model是一个C#对象,但您正试图将其传递到javascript中。您需要对它进行jsonify,以便javascript能够理解它。试试这个:您使用的是CSHTML吗??尝试此函数launchMyActivity(studentSISId){alert(“Lenght:+@Model.length);}