我有一个与另一个相关的模型:
public class Portfolio : BaseEntity, IEntityBase
{
public string Name { get; set; }
public Org Organization { get; set; }
public bool IsPrivate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当我尝试保存它(将字段的值organization指向数据库中的现有记录)时,ModelState 无效(“组织”:输入无效)。
我将 的id与Organization其余的有效负载一起发送:
{
"Name": "Port 1",
"Organization": 16
}
Run Code Online (Sandbox Code Playgroud)
控制器代码非常简单:
[HttpPost]
public IActionResult Create([FromBody]Portfolio item){
if (ModelState.IsValid){
_PortfolioRepo.Add(item);
_PortfolioRepo.Commit();
return new OkObjectResult(item);
}
else{
return BadRequest(ModelState);
}
}
Run Code Online (Sandbox Code Playgroud)
有趣的是,当我Organization在有效负载中指定字段时,item方法中的字段Create()将出现null,因此我无法Organization从其存储库中手动检索并链接到Portfolio其中任何一个字段。当我省略 时 …
c# entity-framework-core asp.net-core-mvc asp.net-core asp.net-core-webapi
我有一个 ASP.NET Core 2.0 项目,在其中使用表单标签进行提交。现在我想在表单提交中添加一些客户端验证。onsubmit所以我在表单上使用标签,如下所示:
<form id="formId" asp-action="ActionName" onsubmit="validationFunction(Event)">
Run Code Online (Sandbox Code Playgroud)
我有一个这样的函数:
function validationFunction(e) {
//CheckStuff
e.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)
现在,当我提交表单时,该函数会正确触发,但e.preventDefault()不会停止提交。也没有return false。
如何阻止我的提交完成?
附言。我知道我可以通过单击按钮来处理这种情况,并在完成验证后提交表单,但我想知道为什么上述方法在 ASP.NET Core 中不起作用或者我缺少什么?
我有一个错误,我想添加一个链接
ModelState.AddModelError(string.Empty, "You must have a confirmed email to log in.");
Run Code Online (Sandbox Code Playgroud)
我想要做的是添加一个指向 SendEmailConfirmationMail 操作的链接,以便在丢失时我可以将其重新发送给他们。
[HttpGet]
[AllowAnonymous]
public async Task<IActionResult> SendEmailConfirmationMail(string email, string returnUrl = null)
{
// Stuff removed
}
Run Code Online (Sandbox Code Playgroud)
我尝试过的
ModelState.AddModelError(string.Empty,
$"You must have a confirmed email to log in. Click to resend conformation email <a href=account/SendEmailConfirmationMail?Email={model.Email}&returnUrl={returnUrl}> resend</a>");
Run Code Online (Sandbox Code Playgroud)
和
ModelState.AddModelError(string.Empty, $"<a href=\"{Url.Action("SendEmailConfirmationMail", "Account", new { Email = model.Email, returnUrl = returnUrl })}\">Click me</a>");
Run Code Online (Sandbox Code Playgroud)
这效果不太好。
如果我做错了,我愿意接受其他想法。我还在学习asp.net mvc。
从它的表现来看
@if (error != null)
{
<strong>
<em> : @Html.Raw(error)</em>
</strong>
}
Run Code Online (Sandbox Code Playgroud)
更新: …
在 ASP.NET Core 中,ViewComponent我们必须在InvokeAsync返回IViewComponentResult. async但是,我在调用方法内没有执行任何逻辑。因此,根据此处的帖子,我删除了async限定符并返回Task.FromResult
public Task<IViewComponentResult> InvokeAsync(MyBaseModel model)
{
var name = MyFactory.GetViewComponent(model.DocumentTypeID);
return Task.FromResult<IViewComponentResult>(View(name, model));
}
Run Code Online (Sandbox Code Playgroud)
然后在视图中(因为我没有,所以async我不在await这里使用)
@Component.InvokeAsync("MyViewComponent", new { model = Model })
Run Code Online (Sandbox Code Playgroud)
然而视图呈现这个:
System.Threading.Tasks.Task1[Microsoft.AspNetCore.Html.IHtmlContent]`
我正在 ApplicationDbContext.cs 的 OnModelCreating 方法中播种数据。我想总是添加一些数据,但也有条件地添加一些数据(仅当环境是开发时)。
我怎样才能做到这一点?我无法将方法签名更改为具有“IHostingEnvironment env”,因为在这种情况下它不会覆盖 OnModelCreating。
protected override void OnModelCreating(ModelBuilder builder)
Run Code Online (Sandbox Code Playgroud)
谢谢!
由于某种原因,.NET Core (2.1.4) MVC 中的 HiddenFor 帮助程序没有在隐藏输入元素上设置值,尽管它表示的模型属性上存在值。
如果我手动创建隐藏属性并使用 IdFor、NameFor 并手动设置值,它将按预期工作。
// This works and has a value attribute with a value
<input type="hidden" id="@Html.IdFor(x => x.Fields[componentIndex].Value)" name="@Html.NameFor(x => x.Fields[componentIndex].Value)" value="@Model.Fields[componentIndex].Value"/>
// This has a value attribute but it's empty
@Html.HiddenFor(x => x.Fields[componentIndex].Value)
Run Code Online (Sandbox Code Playgroud)
请注意,在这两种情况下,生成的名称和 ID 是相同的。
如果我使用 HiddenFor 并提供 anew { @Value=... }值,它也不会设置。
设置值的 HiddenFor 之间的唯一区别(使用相同的代码但不同的组件索引)是它们是在发布时提供的,而这个有问题的值是在控制器中设置的。
我正在使用以下代码,用于以 pdf 格式下载 SSRS 报告:
string URL = "http://ssrs-test.com/ReportS/?/UAT_FOLDER";
URL = URL + "&SRNo=122&rs:Command=Render&rs:Format=pdf";
System.Net.HttpWebRequest Req = (System.Net.HttpWebRequest) System.Net.WebRequest.Create(URL);
Req.Method = "GET";
string path = @ "E:\New folder\Test.pdf";
System.Net.WebResponse objResponse = Req.GetResponse();
System.IO.FileStream fs = new System.IO.FileStream(path, System.IO.FileMode.Create);
System.IO.Stream stream = objResponse.GetResponseStream();
byte[] buf = new byte[1024];
int len = stream.Read(buf, 0, 1024);
while (len > 0) {
fs.Write(buf, 0, len);
len = stream.Read(buf, 0, 1024);
}
stream.Close();
fs.Close();
Run Code Online (Sandbox Code Playgroud)
这完美地在指定的路径中创建了一个 pdf 文件E:\New folder\,我想要做的是:
我需要下载浏览器的,因为我们是在asp.net用在做Response.Write()和Response.End()等。 …
我是 .netcore 的新手,并尝试使用 dapper 进行一些数据库交互。dapper 不能与 .net core 3 一起使用吗?或者我做错了什么:X
我创建了一个新的.net项目:
dotnet new mvc
Run Code Online (Sandbox Code Playgroud)
尝试添加短小精悍
dotnet add package Dapper --version 2.0.30
Run Code Online (Sandbox Code Playgroud)
然后我得到错误:
info : Adding PackageReference for package 'Dapper' into project
C:\repos\dapper\dapper.csproj'.
info : Restoring packages for C:\repos\dapper\dapper.csproj...
error: Cycle detected.
error: dapper -> Dapper (>= 2.0.30).
info : Package 'Dapper' is compatible with all the specified frameworks in project 'C:\repos\dapper\dapper.csproj'.
error: Value cannot be null. (Parameter 'path1')
Run Code Online (Sandbox Code Playgroud) 我是 Dot-net Core 应用程序的新手 如何在 Asp.net Core 应用程序中创建文本文件 请为我提供一些资源
asp.net-core-mvc .net-core asp.net-core asp.net-core-2.1 asp.net-core-mvc-2.1
在我的项目中,我在 Net Core 3.0 项目中使用 Microsoft Graph Api 连接到 Azure Intune 并添加组和用户。添加包含成员的组时,图形 API 需要用户的 json 表示,如下所示(文档):
var group = new Group
{
// other properties omitted
AdditionalData = new Dictionary<string, object>()
{
{"owners@odata.bind", "[\"https://graph.microsoft.com/v1.0/users/26be1845-4119-4801-a799-aea79d09f1a2\"]"},
{"members@odata.bind", "[\"https://graph.microsoft.com/v1.0/users/ff7cb387-6688-423c-8188-3da9532a73cc\",\"https://graph.microsoft.com/v1.0/users/69456242-0067-49d3-ba96-9de6f2728e14\"]"}
}
};
Run Code Online (Sandbox Code Playgroud)
简要编辑: 我从文档中尝试了上面的代码,用我想要添加的用户替换了 Guid,但这也不起作用,给我同样的错误消息。 结束编辑。
如何在字典中动态添加成员,例如从用户 ID 数组中添加成员?他们似乎使用转义字符,并且使用JsonConvert.SerializeObject(arrayObjectWithIds)似乎不起作用,因为我从 Graph Api 得到了一个格式不正确的 OData 字段:Invalid URL format specified in @odata.bind for members
我拥有的:
string[] memberIds = new string[] { "https://graph.microsoft.com/v1.0/users/123", "https://graph.microsoft.com/v1.0/users/456", "https://graph.microsoft.com/v1.0/users/789" };
string json = JsonConvert.SerializeObject(memberIds);
newGroup.AdditionalData = new …Run Code Online (Sandbox Code Playgroud) c# odata asp.net-core-mvc azure-ad-graph-api microsoft-graph-api
asp.net-core-mvc ×10
c# ×6
asp.net-core ×5
.net ×1
.net-core ×1
asp.net ×1
asp.net-mvc ×1
async-await ×1
dapper ×1
form-submit ×1
javascript ×1
odata ×1
razor ×1
seeding ×1