小编Jas*_*son的帖子

Repeater或DataList中的复选框OnClick/ItemCommand

当在转发器控件中单击CheckBox时,我需要在转发器中的一行上执行一些服务器端逻辑.

有谁知道如何去做?

我看到它的方式你不能解雇项目命令,如果你使用CheckBoxes OnClick你不能得到转发器行.

c# asp.net repeater datalist

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

可在网上打印大型PDF

问题

我有一个35mb的PDF文件,包含130页,我需要将其放在网上,以便人们可以每周打印出不同的部分.

我现在在Amazon S3上托管PDF文件,并且被告知用户不喜欢在选择要打印的页面之前等待整个文件下载.

我假设我将不得不发挥创意并将整个杂志输出到JPG并获得一个整洁的观众或找到像ISSUU这样不吸引人的其他服务.

要求和情况

我每周都会获得130页单页PDF文件(所有这些都构成了The Magazine).

  • 用户可以浏览杂志
  • 用户可以打印几页.
  • 可以付钱
  • 自动化流程

我尝试过的事情

  • Google文档查看器 - 出错,Sorry, we are unable to retrieve the document for viewing or you don't have permission to view the document.
  • ISSUU.com - 他们让我的用户登录进行打印.无法自动上传/转换.
  • FlexPaper - 使用SWFTools(见下)
  • SWFTools - File is too complex错误.
  • 托管带有图像预览封面的PDF文件 - 用户说在查看之前必须下载整个文件太慢了.(我无法获得新用户.=()

有人有解决方案吗?或者我已经试过的东西的修复?

html pdf asp.net-mvc

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

控制器外部的ControllerContext和ViewData - MVC3 C#

我正在使用下面的方法渲染PartialViews/Models,以便模拟发送出去的电子邮件.

我使用下面的代码将部分和模型转换为html字符串,我可以传递给我的电子邮件发送代码.

public class BaseController : Controller
{
    public string RenderPartialViewToString(string viewName, object model)
    {
        if (string.IsNullOrEmpty(viewName))
            throw new ArgumentException("No View Path Provided.");

        ViewData.Model = model;

        using (StringWriter sw = new StringWriter())
        {
            ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
            ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
            viewResult.View.Render(viewContext, sw);

            return sw.GetStringBuilder().ToString();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

目前,它存在于BaseController中,我想将其移出一个帮助方法,以便我可以移动我的电子邮件模型构建/发送出控制器.

问题是我无法访问ViewData/TempData/ControllerContext

我可以新建一个ControllerContext,但我不知道如何处理ViewData/TempData.

这就是我目前在Controller中使用的方法:

//Do Stuff in Controller

var html = RenderPartialViewToString("~/Views/Mail/_ForgotPassword.cshtml", new MailModel { Username = "Skrillex", SomethingElse = "foo" });

//Send the Email
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc-3

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

如何将Highland.js或Node.js流限制为每秒一个对象?

我希望能够将呼叫限制为getPagerank()每秒一个.我尝试了各种各样的东西,但无法让它发挥作用.

var pagerank = require('pagerank');
var _ = require('highland');

var urls = [
    'google.com',
    'yahoo.com',
    'bing.com'
];

var getPagerank = _.wrapCallback(pagerank);

// I want to throttle calls to getPagerank to 1/sec
var pageRanks = _(urls)
    .map(getPagerank)
    .merge();

pageRanks.toArray(function(arr) {
    console.log(arr);
});
Run Code Online (Sandbox Code Playgroud)

javascript stream node.js highland.js

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

在C#中匹配两大字符串

情况如下:

我有一个网页,我已经作为一个字符串刮.

我在MSSQL数据库中有几个字段.例如,汽车模型,它有一个ID和一个名称,如Mustang或Civic.它预装了大多数车型.

我想找到我的模型表中任何行的任何匹配项.因此,如果我在我的模型表中有思域,野马和E350,我想在我抓过的页面上找到任何三个中的任何一个.

在C#中执行此操作的有效方法是什么?我正在使用LINQ to SQL与db进行交互.

创建所有模型的字典,标记页面和迭代标记是否有意义?或者我应该迭代标记并使用WHERE子句并询问数据库是否匹配?

    //Dictionary dic contains all models from the DB, with the name being the key and the id being the value...
    foreach(string pageToken in pageTokens)
    {
         if(dic.ContainsKey(pageToken)) 
         {
              //Do what I need to do
         }
    }
Run Code Online (Sandbox Code Playgroud)

这两种方法对我来说都很糟糕.关于我应该做什么的任何建议?设想交叉的东西,我想可能会很好吗?

这些方法都没有解决当模型名称多于一个单词时发生的情况.如"F150 Extended Cab".对此的想法?

c# sql search dictionary

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

UpdatePanel打破了JQuery脚本

这是我想要做的简化版本.基本上我有一个带有大量内容的数据列表,当你将数据库中的项目鼠标悬停时,我希望jquery隐藏/显示内容.问题是,在我数据绑定后,如果gridview/repeater/datalist在更新面板中,我的gridview/repeater/datalist jquery退出工作.

单击下面示例中的按钮后,当鼠标停止工作时,显示跨度的jquery将显示.

任何关于为什么会发生这种情况的想法,如何解决它或更好的方法来做到这一点?

   <script type="text/javascript">
                $(document).ready(function() {
                    $('.comment-div').mouseenter(function() {
                        jQuery("span[class=mouse-hide]", this).fadeIn(50);
                    });
                    $('.comment-div').mouseleave(function() {
                        jQuery("span[class=mouse-hide]", this).fadeOut(50);
                    });
                });
            </script>

            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <div class="comment-div">
                        <asp:GridView ID="GridView1" runat="server">
                        </asp:GridView>
                        <span class="mouse-hide" style="display: none;">sdfgsdfgsdfgsdfg</span>
                    </div>
                    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
                </ContentTemplate>
            </asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

代码隐藏:

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            BindStuff();
        }
    }
    public void BindStuff()
    {
        TestDB db = new TestDB();
        var x = from p in db.TestFiles
                select new { p.filename};
        x = x.Take(20); …
Run Code Online (Sandbox Code Playgroud)

c# asp.net ajax jquery updatepanel

4
推荐指数
2
解决办法
5264
查看次数

MVC3 Partial View需要一个控制器,但是我可以将其设为非公开吗?

是否可以创建一个具有控制器的局部视图,可以使用另一个视图调用该控制器

Html.RenderAction(...)

但是没有相同的控制器可以通过URL访问?

所以举个例子

public class ArticlesController : Controller
{
    public ActionResult HomeList()
    ...
}
Run Code Online (Sandbox Code Playgroud)

提供我的网页底部的最新文章列表.

所以我称之为

_Layout.cshtml

但是我不希望有人来

mysite.com/Articles/HomeList

由于各种原因(安全,搜索引擎优化等)看到相同的列表

谢谢

编辑:

由于Russ的帮助,我最终使用了自己的属性类:

public class ChildActionOnly404Attribute : FilterAttribute, IAuthorizationFilter
{
    void IAuthorizationFilter.OnAuthorization(AuthorizationContext filterContext)
    {
        if (!filterContext.IsChildAction)
        {
            throw new HttpException(404, "");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

asp.net controller view asp.net-mvc-3

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

使用Knockout.js从列表中删除项目

我想从列表中删除一个项目.我正在使用knockout.js与映射插件.我的代码看起来像这样:

序列化为Json

@{ var jsonData = new HtmlString(new JavaScriptSerializer().Serialize(Model));}
Run Code Online (Sandbox Code Playgroud)

模板

<script type="text/html" id="imgsList">
    {{each model.Imgs}}
        <div style="float:left; margin: 10px 10px 10px 0;">
            <div><a href="${Filename}"><img src="${Filename}" style="width:100px;"></img></a></div>
            <div data-bind="click: deleteImage">Delete</div>
        </div>
    {{/each}}
</script>
Run Code Online (Sandbox Code Playgroud)

KO JavaScript

<script type="text/javascript">
     $(function() {
        //KO Setup
        var viewModel = { 
            "model": ko.mapping.fromJS(@jsonData),
            "deleteImage" : function(item) {alert(item.Filename + ' deleted.');}
        }

        ko.applyBindings(viewModel);
    });
</script>
Run Code Online (Sandbox Code Playgroud)

HTML

<div data-bind="template: 'imgsList'"></div>
Run Code Online (Sandbox Code Playgroud)

问题

一切都按预期工作.但是,当您单击按钮项时,将显示带有删除按钮的图像列表.未定义文件名.思考?

编辑:取自KNockout.js手册:"当调用你的处理程序时,Knockout将提供当前模型值作为第一个参数.如果你为一个集合中的每个项目渲染一些UI,这是特别有用的,你需要知道哪个项目的用户界面被点击了."

看来我没有收到我期待的Img对象.我不知道我要回来了!

asp.net-mvc-3 knockout-mapping-plugin knockout.js

4
推荐指数
2
解决办法
8385
查看次数

document.width - IE Bug

我试图在模态窗口后面设置掩码的宽度和高度.

我正在使用$(document).width()$(document).height().

在FF和Chrome中运行良好,但IE每个增加约25px,我最终使用滚动条?我应该使用什么是跨浏览器兼容?

我正在使用IE8顺便说一句,但我希望它可以工作到6或7.

javascript jquery internet-explorer-8

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

MVC3角色管理复选框列表

我正在尝试管理MVC3应用程序中的角色.我的想法是我有一个用户列表,当我点击行上的编辑角色按钮时,我得到一个模态窗口,其中列出了所有可能的角色,其中用户是已选中的角色.

然后我可以选择新角色并单击"保存"并将ajax发送回服务器以保留更改.

我有模式弹出,但我不知道如何以一种易于在更改时提交回服务器的方式生成复选框.我想要最简单的解决方案.

以下是我点击编辑角色时填充模态的局部视图:

public ActionResult ChooseRolePartial(string username)
    {
        var userRoles = Roles.GetRolesForUser(username);
        var list = new MultiSelectList(Roles.GetAllRoles());
        foreach (var item in list)
        {
            item.Selected = userRoles.Contains(item.Value);
        }

        var model = new ChooseRoleModel
        {
             Roles = list,
             Username = username
        };

        return PartialView("Partials/ChooseRolePartial", model);
    }
Run Code Online (Sandbox Code Playgroud)

我希望MultiSelectList有一个EditorFor,它将全部为我处理.但事实似乎并非如此.它只是为我的每个角色呈现文本false.

什么是生成此复选框列表的最佳方法,并将用户名和选中的内容提交回服务器?

c# asp.net-mvc-3

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