2017-05-30 74 views
-3

这是我Index.cshtml文件(我正在学习MVC .NET),当我上的Add按钮来添加新用户,不会添加该用户,当我去检查我的Api。 我知道路由(api/users)和Json对象都是正确的,并且脚本正在呈现。 我使用Visual Studio 2017 for Mac和我的API服务是服务堆栈。

@model dynamic 

@ { ViewBag.Title = “蛋白质跟踪器”; Layout =“../Shared/_Layout.cshtml”; }

@section scripts 
{ 
    <script type="text/javascript"> 
     function AddNewUser(){ 
      var goal = $('#goal').val(); 
      var name = $('#name ').val(); 

      $.post("api/users", { 'Name' : name, 'Goal' : goal }); 
} 
</script> 

} 


<h2>Protein Tracker</h2> 
<div> 
    <label for="select-user">Select a user</label> 
    <select id="select-uder"></select> 
</div> 
<hr /> <!-- horizontal rule --> 
<div> 
    <h2>Add new user</h2> 
    <label for="name">Name</label> 
    <input id="name" type="text" /><br /> 
    <label for="goal">Goal</label> 
    <input id="goal" type="text" /><br /> 
    <input id="add-new-user-button" type="button" value="Add" onclick="AddNewUser()" /> 
</div> 
+0

不知道它会帮助,但你可以尝试在一个标签内的HTML。 – Xariez

+1

'$('#name')''中有一个额外的空间。 – Pyromonk

+1

当您调试时,特别是在哪里失败?浏览器的调试控制台是否有JavaScript错误?是否发出POST请求?它是否包含您期望的数据?服务器的回应是什么?我们需要更多信息。 – David

回答

1

谢谢你的帮助球员,我都试过了大家的建议,但是当我使用过Chrome WebInspector(如@mythz建议),我发现没有定义的“$”,让我明白了我的代码不被识别为JQuery或类似的东西。而当我添加下面的代码行它的工作如预期:

如果
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>