小编Bin*_*Cat的帖子

如何更新记录的所有列而不必列出每列

我试图找出是否有办法更新记录,而不必列出要更新的每个列名称.

例如,如果我可以使用类似的东西,那将是很好的:

// the parts inside braces are what I am trying to figure out
UPDATE Employee
SET {all columns, without listing each of them} 
WITH {this record with id of '111' from other table}
WHERE employee_id = '100'
Run Code Online (Sandbox Code Playgroud)

如果可以这样做,那么编写此类查询的最直接/最有效的方法是什么?

sql sql-update

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

将大型HTML字符串从View传递给Controller

注意:我现在是戴着.Net开发人员的前端开发人员.可笑,我知道,但是我最终陷入这个混乱局面并不是这个问题的重点.有了免责声明,这就是正在发生的事情.

正如标题所示,我需要将一个相当长的HTML字符串(如在多页文本中)从View传递给Controller.我花了最后几天研究各种方法来实现这一目标.TBH,有些事情是有道理的,有些则没有.

这是我的代码片段里面的视图:

var html =
    "<form id='htmlContent' action='" + customUrl + "' method='post'>" +
        "<input type='hidden' name='content' id='contentStr'>" +
    "</form>";

// string literal html gets appended to some element...

$("#htmlContent").submit();
Run Code Online (Sandbox Code Playgroud)

我想在此指出一些事项:

  • 我在这里使用字符串文字来构造表单,因为这个DOM需要在某个时刻动态地附加到其他元素.
  • 我是否使用有效的HTML字符串是不可能的.我已经分别测试了它的有效性,一切看起来都很好.
  • 我故意使用jQuery的submit()方法而不是使用Ajaxcall.

控制器:

[HttpPost]
public ActionResult ParseHtml(FormCollection form)
{
    string htmlStr = form["content"].ToString();
    ....
    // some code in between, but the first line appears to be causing an error or
    // the value is not being retrieved.
    ....
    return new …
Run Code Online (Sandbox Code Playgroud)

c# forms model-view-controller

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

使用PdfGenerator将页码添加到PDF

这个问题与NReco的PdfGenerator组件有关.

我使用此产品使用C#将动态生成的HTML字符串转换为.NET MVC框架内的Pdf文档.

虽然寻找各种方法来添加页码(例如,5 1)到PDF的页脚,我碰上了对SO.毫不奇怪,两种选择似乎都提供了类似的方法来实现相同的目标.

虽然代码本身有意义,但我很难理解的是 - 我的文档内容(或HTML字符串)是在View中生成的.然后将HTML字符串传递给Controller(.cs)以进行实际的转换过程.由于我对MVC框架的知识非常有限,我认为你无法向Controller添加JavaScript代码(或者在那里?).

所以,我不太明白上面两个基于JavaScript的方法如何被整合到处理文档转换的C#函数中.或者这是应该在View中完成的吗?

控制器:

[HttpPost]
public ActionResult Html2Pdf(FormCollection form) {

    var docTitle = form["doctitle"].ToString();

    var headerHtml =
        "<div style='width:100%; margin-top:1em; display:block;'>" +
            "<img src='" + System.Web.HttpContext.Current.Server.MapPath("~") + "/media/images/document_banner.png' />" +
        "</div>" +
        "<div style='width:100%; bottom:110px; left:0; position:relative; display:block;'>" +
            "<span style='color:#fff; font-size:2.5em; font-family:georgia; margin-left:1em;'>" + docTitle + "</span>" +
        "</div>";

    var footerHtml =
        "<div style='width:100%; text-align:center; border-top:1px solid #abc; margin-top:2em;'>Page 0 of 0</div>;

    var htmlToPdf = new HtmlToPdfConverter(); …
Run Code Online (Sandbox Code Playgroud)

javascript c# pdf-generation page-numbering

7
推荐指数
2
解决办法
4865
查看次数

"名字"如何成为JavaScript中的保留字?

注意:这个问题与Doug Crockford撰写的"JavaScript:The Good Parts"一书有关. 当我阅读有关Objects的章节时,我发现了如下声明:

如果名称是合法的JavaScript名称而不是保留字,则对象文字中属性名称周围的引号是可选的.所以周围需要引用"first-name",但周围是可选的"first_name".

以下是本书中提供的对象文字的示例:

var stooge = {
    "first-name": "Jerome",
    "last-name": "Howard"
};
Run Code Online (Sandbox Code Playgroud)

现在,我可能误解了这里的文字,但对我来说,似乎Crockford先生说 first-name(带连字符)是一个保留字,而first_name(带有下划线)则不是.如果是这种情况,我不明白前者如何成为保留词.我在书中没有找到其他解释为什么会这样.有人可以解释一下吗?

javascript reserved-words object-literal

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

将AntiForgeryToken添加到非Ajax表单提交

我发现了很多示例,演示了如何添加一个POST提交方法AntiForgeryTokenAjax调用.正如标题所示,我的需求是不通过ajax电话提交表格.相反,我只是使用jQuery submit()函数.

我在剃刀视图文件中的内容如下(注意:我使用的是html字符串文字,因为这个特定的DOM需要在以后动态地附加到单独的元素):

var html =
    "<form id='exportPdfForm' action='" + exportUrl + "' method='post'>" +
        "<input type='hidden' id='exportContent'>" +
        "<input type='hidden' id='__RequestVerificationToken' value='@Html.AntiForgeryToken()'>" +
    "</form>";
Run Code Online (Sandbox Code Playgroud)

显然,我正在使用以下jQuery提交此表单:

$("#exportPdfForm").submit();
Run Code Online (Sandbox Code Playgroud)

此外,使用DOM资源管理器,我可以看到AntiForgeryToken值正确到位: 在此输入图像描述

但是,当我实际提交表单时,我仍然遇到The required anti-forgery form field "__RequestVerificationToken" is not present错误.我检查了其他几个Q&A,但似乎找不到任何可能对我的问题有所了解的东西.

我错过了一些明显或做错事吗?

编辑(解决方案)

分配__RequestVerificationToken给该name属性将解决这个问题:

<input type='hidden' name='__RequestVerificationToken' value='...'>
Run Code Online (Sandbox Code Playgroud)

c# forms post antiforgerytoken

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

JSON/JavaScript - 通过传递索引和属性名来获取值

对于以下JSON:

var myJSON = 
{ "employee": [
      {
        "firstName": "John",
        "lastName": "Doe",
        "Age": 20
      },
      {
        "firstName": "Jane",
        "lastName": "Moe",
        "Age": 35
      },
      {
        "firstName": "Mike",
        "lastName": "Poe",
        "Age": 28
      }
   ]
};
Run Code Online (Sandbox Code Playgroud)

假设我需要通过传递索引和属性名来获取特定值.例如,employee[1].lastName会给我值"Moe".但是,我有一些粗略的时间搞清楚什么是一个简单的JavaScript函数,它将这两个值作为输入并将值作为输出返回.以下代码似乎不起作用:

function getValue(index, attrName) {

    var val = eval("myJSON.employee[" + index + "]." + attrName);  // is using eval() even a sound approach?
    return val;

}
Run Code Online (Sandbox Code Playgroud)

javascript json eval

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

在另一个(动态定位的)<div>上覆盖<div>

DEMO

我知道有几十个问题可以提出类似于我在标题中所说的内容,但我的挑战有点独特,我将在下面解释.我有一组div块安排如下:

在此输入图像描述

HTML:

<div id='container'>
    <div id='left-pane'>Left pane</div>
    <div id='right-pane'>
        <div id='right-top-content'>Right top</div>
        <div id='right-bottom-content'>Right bottom</div>
    </div>
</div>
<button id='showlayer'>Add layer</button>
<div id='orphan'>Boo...I'm a blue layer!</div>
Run Code Online (Sandbox Code Playgroud)

我在这里要做的是div在顶部叠加一层(另一个块),div#right-pane使标记为"右上"(浅蓝色)和"右下角"(绿色)的区域完全覆盖.生成的布局如下所示:

在此输入图像描述

看起来非常简单,但有几点需要注意.首先,应该保留两个div元素#right-pane(即,应该只保留在重叠的div下); 意思是以下方法对我没有任何好处:

$("#right-pane").empty().append($("#orphan"));
Run Code Online (Sandbox Code Playgroud)

其次,"左窗格"的宽度将动态变化,因此叠加div的定位也需要动态调整(我认为).正如您在我的jsFiddle演示中看到的那样(参见上文),overlay div具有'绝对'定位以及z-index值,这似乎是覆盖元素的最常用方法.这种工作,但"顶部"和"左"值都可以/将改变.

那么,应对这一挑战的最佳方法是什么?如果必须的话,我或许可以计算叠加div的"左"和"上"位置,但有更优雅的方法来实现它吗?

html javascript css jquery css3

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