2014-10-08 55 views
1

我有以下的jQuery函数:的Jquery在@Model新增项目,我得到了来自HTML inputfield

$(document).ready(function() { 
     $(".UrlButton").click(function() { 
      alert('button clicked');    
      var item = $(".UrlField").val(); 
      @Model.Urls.Add(item);   
     }); 
    }); 

以下的按钮

 <input type="text" class="UrlField" /> 
     <button type="button" class="UrlButton">+</button> 

我试图将项目添加到@ Model.Urls,它只是一个字符串。

但与上面的例子我不能添加项目,因为'它不在当前的情况下excin'。

如何通过使用Jquery并从HTML输入字段获取项目来添加某些内容到我的模型中?

谢谢!

+0

var'item'无法添加到Model.Urls – 2014-10-08 22:30:13

回答

1

你不能。所述Model存在于不同的时间JavaScript的环境,因为它们是在HTTP管道

HTTP管道的不同部分为MVC基本如下

  1. 全球ASAX接收请求
  2. 全球ASAX将请求路由到控制器
  3. 控制器为响应构建数据
  4. 该视图从控制器填充任何数据并传输响应(这是的例外情况是,因为item不存在服务器端)

的响应基本上是.html文件一次流的组成。这是服务器参与的结束,这是Model的对象生存期的结束。

从这一点开始,浏览器开始呈现响应。渲染引擎解析html,包括其脚本样式和布局,并构建文档对象模型。

此时,DOM包含您正在分配事件处理程序的元素。这距离Model一生的原始点非常远。

为了仍然可以访问Model中的数据,应将数据序列化为JSON,然后存储在客户端环境中以供使用。

为了修改Model中包含的数据,必须进行ajax调用。

+0

所以这意味着我将不得不寻找另一种方式,我猜... = S – 2014-10-08 22:39:28

+0

感谢您的解释! – 2014-10-08 22:40:36

相关问题