小编Ami*_*mam的帖子

将OData Connected Service添加到项目失败:值不能为null。参数名称:path1

我正在将ASP API 2与OData v3和Visual Studio 2017社区一起使用..我正在尝试通过OData Connected Service使用此API ,并且我遵循了以下说明然后引发错误:

将OData Connected Service添加到项目失败:值不能为null。参数名称:path1 错误

那么该如何处理呢?

c# asp.net api odata

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

为什么 Blazor 应用在​​任何页面重新加载时都会显示错误

我正在使用 Blazor 技术开展项目。我有时需要使用一些 JS 代码,并且需要在每个页面中包含不同的 js 文件,据我所知,唯一的方法是使用 JS 函数和 Blazor JS 调用添加它。所以我所做的是:在 _Host.razor 中

function addScriptFile(fileName){
    var script = document.createElement("script");
    script.setAttribute("type", "text/javascript");
    script.setAttribute("src", file);
    document.getElementById(divName).appendChild(script);
}
Run Code Online (Sandbox Code Playgroud)

然后在每个页面(组件)中:

@inject IJSRuntime Js;
@functions{
    protected override async void OnAfterRender()
    {
        await Js.InvokeAsync<object>("addScriptFile","~/js/myFile.js");
    }
}
Run Code Online (Sandbox Code Playgroud)

它工作正常,但如果重新加载页面就会出现问题。它会抛出错误 System.InvalidOperationException: 此时无法发出 JavaScript 互操作调用。这是因为组件正在预渲染,并且页面尚未加载到浏览器中,或者电路当前已断开连接。组件必须将任何 JavaScript 互操作调用包装在条件逻辑中,以确保在预渲染期间或客户端断开连接时不会尝试这些互操作调用。

我从这个错误中了解到,我试图在渲染完成之前调用一些 javascript 代码。所以我使用 IComponentContext 来确保服务器已连接。在解决此问题的过程中,我创建了一个没有任何 JS 文件的新 Blazor 项目,但它在重新加载页面时引发了相同的错误

我试着做这个:

@inject IComponentContext ComponentContext
@functions{
    protected override void OnAfterRender()
    {
        if(ComponentContext.IsConnected)
        {
            //adding scripts
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如何让 JS 以合适的方式与 Blazor 一起工作?以及如何修复该错误?

c# blazor

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

如何在Blazor组件上进行双向绑定

我想创建自定义输入,因此创建了以下组件:

MyInputComponent.razor

<div>
  <input type="text" @bind="BindingValue" />
</div>

@code {
    [Parameter]
    public string BindingValue { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后的用法:

<EditForm Model="model" OnValidSubmit="Submit">
    <MyInputComponent BindingValue="model.Name" />
</EditForm>

@code {
    User model = new User() { Name = "My Name" };

    private void Submit()
    {
       // here I found model.Name = null;
   }
}
Run Code Online (Sandbox Code Playgroud)

调试时MyInputComponent,我发现了输入的值。但是当我提交表单时,该值为null。

怎么做 ?

c# blazor

2
推荐指数
3
解决办法
352
查看次数

标签 统计

c# ×3

blazor ×2

api ×1

asp.net ×1

odata ×1