小编New*_*ewm的帖子

使用MVC 4/Razor自动完成

我想在尝试在MVC 4中添加自动完成功能时,我遗漏了一些明显的东西.从我在其他帖子中找到的内容,我已经能够将一个示例放在一起但是我的控制器中的方法没有被调用.

到目前为止我尝试过的...

_布局

@Styles.Render("~/Content/themes/base/css")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")
@Scripts.Render("~/bundles/jqueryval")
Run Code Online (Sandbox Code Playgroud)

调节器

Public Function Numbers(term As String) As ActionResult
    Return Json(New String() {"one", "two", "three", "four", "five", "six"}, JsonRequestBehavior.AllowGet)
End Function
Run Code Online (Sandbox Code Playgroud)

查看(我现在硬编码了Home/Numbers)

<div class="editor-label">
    @Html.LabelFor(Function(model) model.Number)
</div>
<div class="editor-field">
    @Html.EditorFor(Function(model) model.Number)
    @Html.ValidationMessageFor(Function(model) model.Number)
</div>

<script type="text/javascript">
    $(function () {
        $("#Number").autocomplete({
            source: 'Home/Numbers',
            minLength: 1
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

当我运行我的应用程序并输入文本框时,没有任何反应.我在"Numbers"函数中放了一个断点,它似乎永远不会被调用.

我的项目可以在http://www.filedropper.com/testapp找到

asp.net-mvc jquery razor

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

从 useEffect 访问上下文

我有一个上下文,用于在我的应用程序执行长时间运行的任务时显示整页微调器。

当我尝试在内部访问它时,useEffect我收到一条react-hooks/exhaustive-depsESLint 消息。例如,下面的代码,虽然它按预期工作,但声明busyIndicator缺少依赖项:

const busyIndicator = useContext(GlobalBusyIndicatorContext);

useEffect(() => {
    busyIndicator.show('Please wait...');
}, []);
Run Code Online (Sandbox Code Playgroud)

这篇文章建议我可以包装useCallback可能如下所示的函数:

const busyIndicator = useContext(GlobalBusyIndicatorContext);
const showBusyIndicator = useCallback(() => busyIndicator.show('Please wait...'), []);

useEffect(() => {
    showBusyIndicator();
}, [showBusyIndicator]);
Run Code Online (Sandbox Code Playgroud)

尽管这有效,但它已将问题移至useCallback现在抱怨缺少依赖项的行。

在这种情况下可以忽略 ESLint 消息还是我错过了什么?

reactjs react-hooks

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

将一个服务注入另一个服务

我有一个 MVC 项目,它有两个服务:OrganizationService 和AgreementService,我的问题是某些组织属于组/父结构,在这种情况下,我需要获取属于其中任何组织的所有协议群组。

我的 OrganizationService 中已经有一个方法,可以返回结构内组织的所有 id 列表:

IEnumerable<int> GetRelatedOrganisationIds(int id)
Run Code Online (Sandbox Code Playgroud)

我可以在AgreementService中创建一个方法来接受此结果,但随后我需要将这两个服务注入我的控制器并依次调用它们,例如

GetAgreementsByOrganisationIdList(IEnumerable<int> organisationIdList)
Run Code Online (Sandbox Code Playgroud)

是否可以将OrganizationService注入到AgreementService中,以便它可以自己完成工作?例如,以下方法将在内部调用 GetRelatedOrganizationIds:

GetAgreementsByOrganisationId(int id)
Run Code Online (Sandbox Code Playgroud)

我想将其注入到AgreementService 中的另一个原因是,我不需要记住检查组织是否处于组/父关系中,也不需要在每次想要获取协议列表时查找ID。

我还考虑过创建一个 OrganizationGroupParentInformationProvider 并将其注入到AgreementService 中,我可能花了太多时间思考这个......你会怎么做?

c# asp.net-mvc dependency-injection service-layer

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

具有简洁架构的 Blazor WebAssembly

我正在使用 Blazor WebAssembly 进行概念验证项目。该项目已经有一个 React 前端,我希望在 Blazor 中复制它。

我的解决方案中有以下项目:

  • 域 - 包含实体并且不引用任何其他层
  • 应用程序 - 引用域并包含 DTO、命令/查询(使用 MediatR/Dapper)、验证器(使用 FluidValidation)和后续层实现的接口
  • 持久性 - 引用应用程序并使用 EF Core 将域模型存储在数据库中
  • API - 一种 Web API,它使用 DI 注册所有内容并通过控制器公开来自应用程序层的命令/查询
  • React Front End - 使用 AJAX 与 API 对话

我想在 Blazor WebAssembly 项目中引用应用程序层,以便我可以重用针对 DTO 存在的验证规则。是否有人可以遍历浏览器中的代码并从命令/查询中提取敏感信息,例如连接字符串?

例如,一个简单的查询可能看起来像这样,单步执行代码将允许IDbConnection检查:

public class PayCategoryListQueryHandler
    : IRequestHandler<PayCategoryListQuery, PayCategoryListQueryVm>
  {
    private readonly IDbConnection _connection;

    public PayCategoryListQueryHandler(IDbConnection connection)
    {
      _connection = connection;
    }

    public async Task<PayCategoryListQueryVm> Handle(PayCategoryListQuery query, CancellationToken cancellationToken)
    {
      {
        var viewModel = …
Run Code Online (Sandbox Code Playgroud)

blazor blazor-server-side

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

使用 Automapper.Collection.EntityFrameworkCore 的 EF Core 集合

鉴于我有 2 个类,Foo 和 Bar:

public class Foo
{
  private readonly List<Bar> _bars = new List<Bar>();

  public int Id { get; private set; }
  public string Name { get; private set; }
  public IEnumerable<Bar> Bars => _bars;

  public void AddBar(Bar bar)
  {
    _bars.Add(bar);
  }

  public static Foo Create(string name)
  {
    return new Foo { Name = name };
  }

  private Foo() { }
}

public class Bar
{
  public int Id { get; private set; }
  public string Description { …
Run Code Online (Sandbox Code Playgroud)

automapper automapper-collections-ef-core ef-core-3.0

6
推荐指数
0
解决办法
1334
查看次数

来自路由和查询字符串的 ASP.NET Core 模型绑定

我想执行一个 GET 请求,例如https://localhost:12345/api/employees/1/calendar/2018/2019?checkHistoricalFlag=true

我在我的控制器中创建了这个方法,它按预期工作:

[AllowAnonymous]
[HttpGet("/api/employees/{clockNumber:int}/calendar/{yearFrom:int}/{yearTo:int}")]
public IActionResult Get(int clockNumber, int yearFrom, int yearTo, bool checkHistoricalFlag = false)
{
  return Ok();
}
Run Code Online (Sandbox Code Playgroud)

但是我更愿意使用以下视图模型:

public class DetailsQuery
{
  [Required]
  public int? ClockNumber { get; set; }
  [Required]
  public int? YearFrom { get; set; }
  [Required]
  public int? YearTo { get; set; }
  public bool CheckHistoricalFlag { get; set; } = false;
}
Run Code Online (Sandbox Code Playgroud)

这会绑定路由参数,但会忽略查询字符串中的“checkHistoricalFlag”:

[AllowAnonymous]
[HttpGet("/api/employees/{clockNumber:int}/calendar/{yearFrom:int}/{yearTo:int}")]
public IActionResult Get([FromRoute]DetailsQuery query)
{
  return Ok();
}
Run Code Online (Sandbox Code Playgroud)

删除 [FromRoute] 会导致 415“不支持的媒体类型”错误。

是否可以将路由参数和查询字符串值绑定到单个视图模型,或者我是否需要单独指定查询字符串值?

[AllowAnonymous]
[HttpGet("/api/employees/{clockNumber:int}/calendar/{yearFrom:int}/{yearTo:int}")] …
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-core-webapi

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