小编joh*_*kes的帖子

MVC jQuery从JavaScript函数提交表单(没有页面刷新)

我对这一切都很陌生.我正在使用ASP.NET MVC C#LINQ to SQL.

我有一个编辑页面,可以加载作者及其所有书籍.通过Ajax调用加载Books .

    <script type="text/javascript">
        $(document).ready(function() {
            LoadBooks();
        });

        function LoadBooks() {
          $(".Books").hide();
          $(".Books").load("/Books/Edit/<%= Model.AuthorID %>");
          $(".Books").show('slow');
        }
     </script>
Run Code Online (Sandbox Code Playgroud)

这部分工作正常.页面加载作者信息,然后加载书籍(DIV id ="Books"中的部分视图,只有书籍类别和书名):

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Solution.Controllers.BooksController+BooksViewModel>" %>
     <% using (Html.BeginForm(null,null, FormMethod.Post,new { id = "bookform" }))
        {%>
            <fieldset>
                <legend>Books</legend>
                <%int i = 0;
                    foreach (var book in Model.Books)
                    {%>
                      <%= book.BookID%>
                      <%= Html.Hidden("book[" + i + "].BookID", book.BookID) %>

                      <%= Html.DropDownList("book[" + i + "].CatID", new SelectList(Model.Categories, "CatID", "CatTitle", book.CatID))%>
                      <%= Html.ValidationMessage("CatID", …
Run Code Online (Sandbox Code Playgroud)

ajax asp.net-mvc jquery form-submit

33
推荐指数
1
解决办法
6万
查看次数

Ruby/Rails - 我可以使用连接表的范围(或类方法)作为WHERE子句的一部分吗?

我想抓住所有包含可购买的类别products.

class Product < ActiveRecord::Base
  belongs_to :category
  scope :purchaseable, where(:available => true)
end 

class Category < ActiveRecord::Base
  has_many :products
  scope :with_purchaseable_products, ?????
end
Run Code Online (Sandbox Code Playgroud)

所以,我正在尝试定义:with_purchaseable_products.这有效:

scope :with_purchaseable_products, joins(:products).where("products.available is true").group(:id).having('count(products.id) > 0')
Run Code Online (Sandbox Code Playgroud)

但那不是很干.有没有办法将我的:purchaseable范围应用到products我的:with_purchaseable_products范围内?

谢谢.

activerecord scope ruby-on-rails arel ruby-on-rails-3

19
推荐指数
1
解决办法
6545
查看次数

Ruby/Rails - 如何防止字符转义(或之后的unescape)?

我有一些已经被转义的文本文件中的json:
"{\"hey\":\"there\"}"

当我尝试读取文件时:
File.open("\file\path.txt").read
它再次转义内容,以便现在双重转义:
"\"{\\\"hey\\\":\\\"there\\\"}\""

有办法防止逃跑吗?
或者,是否有一种简单的方法可以在读取和转义字符串后对其进行处理?

谢谢.

编辑:
答案是有道理的,但无论如何我似乎无法解析JSON.

irb(main):018:0> json
=> "\"{\\\"hey\\\":\\\"there\\\"}\"\n"  


irb(main):019:0> puts json  
"{\"hey\":\"there\"}"  
=> nil 


irb(main):017:0> x = JSON.parse(json)  
JSON::ParserError: 751: unexpected token at '"{\"hey\":\"there\"}"  
'
Run Code Online (Sandbox Code Playgroud)

意外的令牌在哪里?

谢谢.

编辑2:

这个问题得到了答案

"问题是你的文件可能是有效的JS,但它不是有效的JSON,所以JSON库倾向于拒绝它."

我相信来源(我),所以如果我跑:
x = JSON.parse(eval(json))

有用!

谢谢.

ruby escaping

9
推荐指数
2
解决办法
1万
查看次数

Ruby - 如何检查字符串是否包含数组中的所有单词?

我有一个字符串数组: phrases = ["Have a good Thanksgiving", "Eat lots of food"]

我有另一个单词单词: words = ["eat", "food"]

如果字符串包含第二个数组中的所有单词,我想返回第一个数组中的条目.

所以,它应该看起来像这样:
phrases.select{ |x| x.include_all?(words) }

我是否应该创建include_all?函数来遍历words数组的每个成员并进行比较,或者是否有任何我缺少的内置方法?

ruby string

7
推荐指数
1
解决办法
4713
查看次数

Ruby/Rails - 访问"查找"表而不进行建模?

这是一个Ruby on Rails 3.0.x项目.

我有一个"查找"表,其中包含来自供应商的数据.

当我从其他来源导入数据时,我想检查此表(加入SKU)以获取额外数据.

在我的应用程序中为此表创建模型似乎不对.我的应用程序永远不会更改数据,除了刚刚提到的数据查找之外,它不需要任何模型关联.只是偶尔访问它来检查一些信息.

访问此表的最佳做法是什么?

谢谢.

ruby activerecord ruby-on-rails ruby-on-rails-3

6
推荐指数
1
解决办法
5900
查看次数

我可以在SQL Server中创建一个包含多个表的标识字段吗?

我可以在多个表中使用"标识"(唯一,非重复)列吗?例如,假设我有两个表:书籍和作者.

Authors
  AuthorID
  AuthorName
Books
  BookID
  BookTitle
Run Code Online (Sandbox Code Playgroud)

BookID列和AuthorID列是标识列.我希望标识部分跨越两列.因此,如果存在值为123的AuthorID,则不能存在值为123的BookID.反之亦然.

我希望这是有道理的.

这可能吗?

谢谢.

我为什么要这样做?我正在写一个APS.NET MVC应用程序.我正在创建一个评论部分.作者可以发表评论.书籍可以有评论.我希望能够将实体ID(书籍ID或作者ID)传递给某个操作,并让该操作提取所有相应的注释.如果它是书籍或作者或其他什么,该行动将无关紧要.声音合理吗?

sql-server identity-column

5
推荐指数
2
解决办法
3886
查看次数

LINQ to SQL查找字段的平均值?

我有一个名为EntityRating的ViewModel,其中一个属性是AverageRating.

当我实例化我的ViewModel(称为EntityRating)类型的新对象时,如何根据相关项目的Rating字段(在SQL Server中)设置EntityRating.AverageRating?

我想做这样的事情(显然不起作用):

var er = new EntityRating()
        {
            AverageRating = _db.All<Ratings>(X => X.RatingID = rating.RatingID).Average(RatingField);
        };
Run Code Online (Sandbox Code Playgroud)

我可以平均数据库中对象的属性并将其分配给代码中对象的属性吗?

(很新,所以如果有任何术语关闭,或者如果您需要更多信息,请告诉我)

谢谢.

c# asp.net-mvc linq-to-sql

4
推荐指数
1
解决办法
4310
查看次数

Json结果在浏览器中提示"另存为"对话框而不是被处理.ASP.NET MVC

我知道这对其他人来说是一个问题,但我还没有找到解决我问题的方法.

我有一个部分视图显示在灯箱(彩盒)中.这是一个简单的形式.我希望表单提交并返回一些数据.数据将用于调用后续函数,我希望主DIV只是用"成功"消息更新.以下是局部视图的完整代码:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Solution2.Models.Category>" %>

<script type="text/javascript">
    $('propcatform').submit(function(e) {
        e.preventDefault();

        $.ajax({
            type: "POST",
            url:  $(this).attr("action"),
            data: $(this).serialize(),
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            success: function(data) { document.getElementById('main1').innerHTML = "Success"; },
            failure: function() { document.getElementById('main1').innerHTML = "Failure"; }
        })
    });
    </script>

    <% using (Html.BeginForm(null, null, FormMethod.Post, new { id = "propcatform", name = "propcatform" }))
       {%>
        <div id="main1">
        <fieldset>
            <legend>Fields</legend>
            <p>
                <label for="CatTitle">Category Title:</label>
                <%= Html.TextBox("CatTitle") %>
                <%= Html.ValidationMessage("CatTitle", "*") %>
            </p>
            <p>
                <input type="submit" value="Create" />
            </p>
        </fieldset>
        </div> …
Run Code Online (Sandbox Code Playgroud)

ajax asp.net-mvc json

3
推荐指数
1
解决办法
3634
查看次数

Ruby/Rails - kaminari undefined方法分页错误

我不知道我做了什么,但是kaminari已经开始在我的应用程序中表现得很奇怪了.

在我的控制器中:

@producers = Producer.order(:name).page(params[:page])
Run Code Online (Sandbox Code Playgroud)

视图:

<%= paginate @producers %>
Run Code Online (Sandbox Code Playgroud)

结果是:

undefined method `num_pages' for #<ActiveRecord::Relation:0x000001026e6308>
Run Code Online (Sandbox Code Playgroud)

如果我在我的控制器中添加.per:

@producers = Producer.order(:name).page(params[:page]).per(25)
Run Code Online (Sandbox Code Playgroud)

我明白了

undefined local variable or method `per' for #<ActiveRecord::Relation:0x0000010928ef60>
Run Code Online (Sandbox Code Playgroud)

最后,奇怪的是,如果我移动.order(:name)到最后,它的工作原理:

@producers = Producer.page(params[:page]).order(:name)
Run Code Online (Sandbox Code Playgroud)

我猜我安装的其他宝石有一个page导致问题的范围或方法?

谢谢.

pagination ruby-on-rails ruby-on-rails-3 kaminari

3
推荐指数
2
解决办法
8630
查看次数

jQuery回调发生得太快了?

我正在使用ASP.NET MVC C#

我有一个jQuery调用删除一本书,然后在回调中我调用一个刷新书籍列表的函数.

function rembook(id) {
        var agree=confirm("Deletion cannot be undone.  Continue?");
        if (agree)
        {
            jQuery.ajax({ url: "/Books/Delete/" + id, dataType: null, type: "POST", cache: true, callback: LoadBooks(), data: null });
            return false;
        }
        else
            return false;
    }   
Run Code Online (Sandbox Code Playgroud)

这是LoadBooks(),如果重要的话:

function LoadBooks() {
        $(".BookList").hide();
        $(".BookList").load("/Books/Edit/<%= Model.AuthorID %>");
        $(".BookList").show('slow');
    }
Run Code Online (Sandbox Code Playgroud)

后期工作和LoadBooks()函数被调用.但是,刷新的书籍列表仍包含已删除的书籍.如果我然后手动调用LoadBooks()函数(通过页面上的链接),则会在没有删除的书籍的情况下重新加载书籍.为什么第一本书重新加载仍显示已删除的书?是否在实际删除本书之前发生了?

(我使用$ .post获得相同的结果("/ Books/Delete /"+ id,LoadProperties());)

谢谢.

ajax asp.net-mvc jquery callback

1
推荐指数
1
解决办法
466
查看次数