下面的代码被简化以显示必要性.我可以知道出了什么问题吗?我似乎无法使用[FromBody]属性检索两个参数(在本例中为A和B).
错误消息是"无法将多个参数('A'和'B')绑定到请求的内容"
如果我只有A或B,那就完全没问题了.
Web API:
[Route("API/Test"), HttpPost]
public IHttpActionResult Test([FromBody] int A, [FromBody] int B)
Run Code Online (Sandbox Code Playgroud)
客户:
HttpClient client = new HttpClient();
var content = new FormUrlEncodedContent(
new Dictionary<string, string> {
{ "A", "123" },
{ "B", "456" }
});
client.PostAsync("http://localhost/API/Test", content).Result;
Run Code Online (Sandbox Code Playgroud) 从 2.2 升级到 Dotnet Core 3.1,EF 核心不断抱怨EF1001:通过在我的项目中放置感叹号来使用内部 ef 核心 api。
但是在编译过程中没有显示错误/警告。我不知道哪一行代码导致了问题。
我可以知道如何找出我不应该使用的 API/方法吗?
我有两个几乎相同的 .NET Core 5.0 Razor 页面模型项目,位于同一个解决方案中。已经快4个月没有跑步了。
现在当我想做出一些改变时。其中一个项目无法在调试模式下运行。我总是收到以下错误
{“标签”:“dap.receive”,“时间戳”:1625537078095,“元数据”:{“connectionId”:0,“消息”:{“类型”:“请求”,“命令”:“启动”,”参数":{"WebRoot":"xxxx\ApmtWeb\wwwroot","rootPath":"xxxx\ApmtWeb\wwwroot","__workspaceFolder":"xxxx\ApmtWeb\wwwroot","runtimeExecutable":"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe","runtimeArgs":[],"sourceMaps":true,"url":"http://localhost:5031/","trace":{"logFile “:”yyyy \ Temp \ Visualstudio-js-debugger.txt“},“端口”:54798,“launchUnelevated”:假,“projectGuid”:“cca052fc-e9e7-44d5-8299-28928d665223”,“userDataDir”:“ yyyy\Microsoft\VisualStudio\16.0_e9805624\WebTools\F17440DA_BBDA0153","breakOnLoad":true,"smartStep":true,"skipFiles":[],"showAsyncStacks":true,"超时":10000,"cleanUp":" onlyTab","name":"Visual Studio 启动配置覆盖","type":"pwa-msedge","request":"launch","continueOnDisconnect":true},"seq":2}},"level “:0}
由于隐私原因,xxxx 和 yyyy 被遮挡
我的启动设置
“ApmtWeb”:{“commandName”:“项目”,“dotnetRunMessages”:“true”,“launchBrowser”:true,“applicationUrl”:“http://localhost:5031”,“environmentVariables”:{“ASPNETCORE_ENVIRONMENT”: “发展” } }
如果我在出现上述错误并强制关闭之前手动输入 URL http://localhost:5031 ,我就可以看到我的网页。
我的整个解决方案中没有这样的设置http://localhost:54798 ,即使我进行全局搜索,我也找不到任何对54798 的引用。
我可以使用orderby语句动态构建Linq Query,如下所示:
var Query = from q in Db.TblUsers select q;
switch (Order)
{
case "Name": Query = from q in Query orderby q.Name select q; break;
case "DOB": Query = from q in Query orderby q.DOB select q; break;
// ... and more cases
}
var Result = Query.ToList();
Run Code Online (Sandbox Code Playgroud)
但是,如果需要按顺序降序(取决于UI中的用户选择),我将不得不构造另一个switch语句复制所有情况,只是为了在orderby之后添加"descending"关键字.
例:
if (ascending)
{
switch (Order)
{
case "Name": Query = from q in Query orderby q.Name select q; break;
// ....
}
}
else
{
switch (Order)
{ …Run Code Online (Sandbox Code Playgroud) 我的 AVD 中的相机已旋转到不知道在哪里,并且我很难将其旋转回 i5 上的原始位置(没有 GPU,速度为 0.1 fps)。
有没有办法重置相机视图?
或者最好,只需将相机更改为静态壁纸即可。因为我只需要测试一些二维码扫描仪。
一段代码值一千字……
public enum enTest { a, b, c }
public void PrintEnum<T>()
{
foreach (var E in Enum.GetValues(typeof(T)))
Debug.WriteLine(E.ToString());
}
PrintEnum<enTest>();
PrintEnum<enTest?>(); // This will cause failure in Enum.GetValues()
Run Code Online (Sandbox Code Playgroud)
上面从一个更大的问题简化来说明失败。
有谁知道当有人传递给我一个 Nullable Enum 时,我如何遍历(或获取所有值)?
提前致谢。
我是C#4的新手,特别是dynamic关键字.我已经看过很多教程,并希望自己尝试使用VS 2012 Ultimate(MSDN).
不幸的是,我似乎找不到System.Dynamic也无法添加对它的引用.我可以知道在哪里可以找到DLL System.Dynamic以及我可能做错了什么吗?
默认情况下,VS 2012已经定位到Fx 4.5,并System.Core作为参考添加.
该dynamic关键字非常常见,因此在Google中进行搜索会产生大量不相关的结果.
我收到了这样的请求.
POST /API/Event?EventID=15&UserID=1&Severity=5&DeptID=1&FlowTag=CE HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: localhost:8088
Content-Length: 9
Expect: 100-continue
Connection: Keep-Alive
HTTP/1.1 100 Continue
Desc=test
Run Code Online (Sandbox Code Playgroud)
我的WebAPI界面是这样的:
[Route("API/Event"), HttpPost]
public IHttpActionResult StationCreateWorkItem(long EventID, long UserID, int Severity,
long DeptID, string FlowTag, [FromBody] string Desc)
Run Code Online (Sandbox Code Playgroud)
但是,我的Desc参数始终为NULL.如果我无法在WebAPI(OWIN)中使用[FromBody],我可以知道如何检索正文内容
抱歉,我无法更改收到的消息,因为它是由另一家公司开发的.
我有一个 20 年前在我公司创建的数据库表,它仅用于日记,没有 PRIMARY KEY 或 INDEX。我不能改变那张桌子。
我知道我们需要在代码优先的方法中调用HasNoKey()。
但是在这种情况下我如何应用 HasNoKey 呢?因为它是数据库优先的方法。
使用 VS2019 版本 16.6.5 Razor 页面模型。核心3.1
@{
if (Model.Mode != enAccessMode.Read)
{
<text>
$("#mTable tbody tr div").removeClass("TrError").
find("[data-title]").removeAttr("data-title");
var errs = JSAns.CollectData();
if (errs !== null) {
for (var i = 0; i < errs.length; i++) { // Razor doesn't likes the < here!!!!!
var err = errs[i];
var e = $("#mQ_" + err.ErrQID);
e.addClass("TrError");
e.attr("data-title", err.ErrMsg);
}
$("#mQ_" + errs[0].ErrQID)[0].scrollIntoView();
return;
}
</text>
}
}
Run Code Online (Sandbox Code Playgroud)
编译器不喜欢第 9 行的 < 符号。它在编译期间给出以下错误。使用 < 根本没有帮助,因为它是 JavaScript 代码,而不是文本字符串。
在解析“”标记之前已到达文件结尾或意外字符。标记块内的元素必须完整。它们必须是自闭合的(“<br />”)或具有匹配的结束标记(“<p>Hello</p>”)。如果要显示“<”字符,请使用“<” HTML 实体。
我所有的旧项目都能够使用 Android 模拟器启动调试。当我按 F5 时,它会显示已安装的 Android 模拟器的列表,供我选择进行调试。
但今天,我创建了一个新项目,并在 Chrome 中启动调试。
我有 C#(核心)和 C++(非托管 DLL)之间的代码互操作。
在 C# using 中分配的内存Marshal.AllocHGlobal()需要在 C# using中释放Marshal.FreeHGlobal()。
在 C++ using 中分配的内存new需要在 C++ using中释放delete。
由于 GC 不再跟踪这些内存处理程序,我可以随时delete或FreeHGlobal()随心所欲吗?
我在 2019 年 1 月创建了一个 Flutter 项目。我在 Dart 中阅读了一篇文章,并说它支持可空类型。
class c {
int? id;
}
Run Code Online (Sandbox Code Playgroud)
但我无法编译上述内容。它给出了一些错误消息,但与可空类型无关。似乎它不理解“?” 根本。
我可以知道我的代码中可能缺少什么吗?我需要升级我的 Dart 或 Flutter 吗?我查看了 pubspec.yaml,但找不到任何对 dart 的引用。
c# ×6
.net-core ×2
flutter ×2
razor-pages ×2
asp.net-core ×1
c#-4.0 ×1
c++ ×1
dart ×1
enums ×1
interop ×1
linq ×1
nullable ×1
owin ×1
sql-server ×1