我试图映射一个csv文件,以便每个记录都只是一个字典。
我收到ArgumentException“不是成员访问权”;当我尝试这样做时。代码如下:
public class CsvFileReader : FileReader
{
public CsvFileReader(string path) : base(path){ }
public IDictionary<string, object> Read()
{
var reader = new CsvReader(new StreamReader(Path));
reader.Read();
reader.Configuration.RegisterClassMap(new DictionaryClassMap(reader.FieldHeaders));
return reader.GetRecord<Dictionary<string, object>>();
}
private class DictionaryClassMap : CsvClassMap<Dictionary<string, object>>
{
private readonly IEnumerable<string> _headers;
public DictionaryClassMap(IEnumerable<string> headers)
{
_headers = headers;
}
public override void CreateMap()
{
foreach (var header in _headers)
{
var localHeader = header;
Map(x => x[localHeader]);
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用HtmlAgilityPack抓取一些数据.
HTML看起来像这样:
<div id="id-here">
<dl>
<dt> Field Name </dt>
<dd> Value for above field name </dd>
<dt> Field Name </dt>
<dd> Value for above field name </dd>
<dt> Field Name </dt>
<dd> Value for above field name </dd>
</dl>
</div>
Run Code Online (Sandbox Code Playgroud)
现在我遇到的问题是,并不总是有一定数量的字段,所以我无法可靠地访问它们,如:
//*[@id="id-here"]/dl[1]/dd[1]
Run Code Online (Sandbox Code Playgroud)
因为dd [1]可能是一个页面上的名称和另一个用户未能填写名称的电话,因此隐藏了字段.
所以我抓住所有的DT和DD节点,如下所示:
//*[@id="id-here"]/dl[1]/dt | //*[@id="id-here"]/dl[1]/dd
Run Code Online (Sandbox Code Playgroud)
现在我检查每个节点以查看它是否与我想要的字段匹配,并采用NextSibling值,如下所示:
foreach (HtmlNode node in details)
{
if (node.InnerText.Contains("Tel:")) telephone = node.NextSibling.InnerText;
if (node.InnerText.Contains("Email:")) email = node.NextSibling.InnerText;
}
Run Code Online (Sandbox Code Playgroud)
这适用于电话,但出于某种原因,当"Email:"节点出现时,两个NextSibling.InnerHTML&NextSibling.InnerText都是空白的,尽管下一个兄弟肯定有数据.如果我真的去那个node在details看它的InnerHTML是整个格式化链接和InnerText是电子邮件地址.
是 …
我正在尝试使用IdentityModel2- https://github.com/IdentityModel/IdentityModel2获取持有人令牌
他们的github页面说它支持资源所有者密码
但是我看不到任何添加用户名/密码的方法,也没有关于如何执行此操作的示例.
如何使用用户名和密码获取令牌TokenClient?
有什么方法可以获取加载到文档头部的外部 CSS 和 Javascript 的 URL?
例如在头部:
<script type="text/javascript" src="/path/somewhere/script.js">
<link rel="stylesheet" href="/path/somewhere/styles.css">
Run Code Online (Sandbox Code Playgroud)
我如何获取/path/somewhere/script.jsDOM /path/somewhere/styles.css?
我已经创建了Mat Input控件,并将它的value属性与控制器上的属性进行了2种方式的绑定,但是当我输入输入时,绑定属性不会更新。
堆栈闪电战链接:https : //stackblitz.com/edit/angular-7ojsjo
<div class="example-container">
<mat-form-field>
<input matInput placeholder="Input" [(value)]="currentValue">
</mat-form-field>
<h1>{{currentValue}}</h1>
</div>
Run Code Online (Sandbox Code Playgroud)
为什么绑定的属性不更新?
我似乎错过了JQuery Show()的一些东西.我已经搜索了这个但是我从给定的例子中看不出我的语法有什么问题.我已经尝试将脚本标记移动到文档的底部.有什么根本我不理解?
这是我的页面.我想让它显示隐藏的div.
<!DOCTYPE html>
<head>
<style type="text/css">
.hidden {
visibility: hidden;
}
</style>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".hidden").show()
});
</script>
</head>
<body>
<div class="hidden">
<p>Can you see me?</p>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
我有一个表格:
@using (Html.BeginForm("QuoteUpdate", "Home", FormMethod.Post))
{
@Html.DropDownList("network", Model.availableNetworks);
@Html.DropDownList("grade", Model.grades);
@Html.HiddenFor(o => o.Product.id);
<button type="submit">Get Quote</button>
}
Run Code Online (Sandbox Code Playgroud)
和控制器:
[HttpPost]
public ActionResult QuoteUpdate(int? id, string network, string grade )
{
}
Run Code Online (Sandbox Code Playgroud)
id提交表单后,该属性始终为null.我检查了源,隐藏字段在呈现的HTML中具有正确的值.
我无法弄清楚为什么这个参数总是为null.我错过了什么?
在这里以及其他论坛的一些帖子中,我发现这个代码用于将Json对象转换为DataTable:
DataTable dt = (DataTable)JsonConvert.DeserializeObject(json, (typeof(DataTable)));
Run Code Online (Sandbox Code Playgroud)
我不能让这个工作.它总是抛出JsonSerializationException.我错过了什么吗?
这是显示错误的简单示例:
JObject query = new JObject();
JObject results = new JObject();
results.Add("Name", "Blue Umbrella");
results.Add("Price", 100);
query.Add("results", results);
DataTable dt = (DataTable)JsonConvert.DeserializeObject(query.ToString(), (typeof(DataTable)));
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
我有一个包含两个项目的解决方案。一个是控制台应用程序,另一个是 ASP.NET MVC 应用程序。
我的控制台应用程序正在使用实体框架,我想从 ASP.NET MVC 应用程序访问它的一些数据。
我在 asp.net 应用程序项目中添加了对控制台应用程序项目的引用,并且在控制器中工作正常,我能够访问数据库上下文并查看数据。
但是,该视图会引发标准“找不到类型或命名空间名称(是否缺少 using 指令或程序集引用?)”异常。
为什么控制器可以看到控制台应用程序命名空间,但视图却不能?
我需要在某处添加另一个参考吗?
编辑:
using 语句如下所示:
@model PagedList.IPagedList < PlacesAPI.Models.RootDomain>
@using PagedList.Mvc;
Run Code Online (Sandbox Code Playgroud)
我尝试过不完全限定和执行@using PlacesAPI,但它总是找不到参考,PlacesAPI但它在控制器中工作正常。
编辑:
我在另一个线程上发现了一条评论,该评论说如果您使用来自虚拟源(如数据库)的外部引用(我就是),那么您必须将引用放在根 web.config 文件中,而不是视图 web.config 文件中。
我尝试添加:
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
Run Code Online (Sandbox Code Playgroud)
和
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="PlacesAPI" />
</namespaces> …Run Code Online (Sandbox Code Playgroud) 我试图理解为什么当我尝试在子组件按钮 onclick 事件上设置状态时,它会导致递归循环。
例如,此代码生成错误:
import React, { useState } from "react";
export default function App() {
const [formState, setFormState] = useState({ name: "Joe" });
return (
<div className="App">
<Child state={formState} setState={setFormState} />
</div>
);
}
function Child({ state, setState }) {
return (
<div className="">
<h1>Name:{state.name}</h1>
<button onClick={setState({ name: "Bill" })}>Next</button>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
超出最大更新深度。当组件在 componentWillUpdate 或 componentDidUpdate 中重复调用 setState 时,就会发生这种情况。React 限制嵌套更新的数量以防止无限循环。
在没有单击按钮的情况下渲染时会发生此错误。它如何在没有发送点击的情况下导致编译递归?我不明白这里发生了什么。
如果我使用这样的箭头函数,则会出现错误:
function Child({ state, setState }) {
return (
<div className="">
<h1>Name:{state.name}</h1>
<button onClick={() => setState({ name: …Run Code Online (Sandbox Code Playgroud)