WinJS未定义web.api应用程序中存在错误

时间:2012-10-17 09:18:19

标签: asp.net asp.net-web-api winjs

我是Microsoft asp.net web.api应用程序的新用户。我正在尝试一个虚拟项目,我在其中定义了EmployeeController.cs,其中有一个方法可以将员工插入数据库。

 // POST api/<controller>
public void Post(EmployeeInfo empObj)
{
    objEmployeeDal.InsertEmployee(empObj);
}

在Employee.js文件中,我尝试使用post方法访问web.api以插入数据。

  $('#btnAddEmployee').bind('click', function () {
    try {

        //Declare Object
        var Emp = {};
        Emp.firstName = $("#txtFirstName").val();
        Emp.MiddleName = $("#txtMiddleName").val();
        Emp.lastName = $("#txtLastName").val();
        Emp.gender = $('select#selectGender option:selected').val();
        Emp.roleID = "1";
        Emp.active = "1";
        //Get Url
        var createurl = "http://localhost:1045/api/Employee/";

        //POST data
        WinJS.xhr({
            type: "POST",
            url: createurl,
            headers: { "Content-type": "application/json; charset=utf-8" },
            data: JSON.stringify(Emp)
        }).then(success, error);

    }
    catch (e) {
        alert(e);
    }

});

并在员工HTML页面中包含WinJS文件。

<script src="//Microsoft.WinJS.1.0.RC/js/base.js"></script>
<script src="//Microsoft.WinJS.1.0.RC/js/ui.js"></script>
<script src="Scripts/EmployeeDetails.js"></script>

但是在萤火虫中它显示出问题“WinJS未定义”

1 个答案:

答案 0 :(得分:1)

您用来引入winjs的脚本标记只能在win8应用程序中使用,而不能在网页中使用。基于你提到firebug,我假设你正试图在普通的网络应用程序中使用它。您需要将winjs文件放在Web服务器上,并像访问任何其他脚本文件一样访问它们。

但请注意:winjs尚未针对跨浏览器方案进行设计或测试,并检查库的许可证。至少某些版本仅允许在win8应用中使用。我不确定在最终版本中是否仍然如此,但如果是的话,我不会感到惊讶。