小编Jiv*_*man的帖子

通过HttpClient使用外部REST Web服务的存储库模式示例?

我已经搜索了很多,但没有找到任何使用存储库模式在ASP.NET MVC应用程序中使用外部REST Web服务的好例子,具有松散耦合和有意义的关注点分离.我在网上找到的几乎所有存储库模式的例子都是编写SQL数据或使用ORM.我只想看一些使用HttpClient检索数据但包装在存储库中的示例.

有没有提到好的例子?或者有人可以写一个简单的例子吗?

c# asp.net-mvc web-services httpclient repository-pattern

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

如何在asp.net mvc中以编程方式确定Route Prefix?

我想为管理/身份验证的控制器和视图中的公共/匿名控制器和视图提供一些URL分隔.所以我最终完全使用属性路由,以便更好地控制我的URL.我希望我的公共URL以"〜/ Admin/etc"开头.而我的公共网址没有任何这样的前缀.

公共控制员(几个中的一个)

[RoutePrefix("Home")]
public class HomeController : Controller
{
    [Route("Index")]
    public ActionResult Index()
    { //etc. }
}
Run Code Online (Sandbox Code Playgroud)

管理员控制器(几个之一)

[RoutePrefix("Admin/People")]
public class PeopleController : Controller
{
    [Route("Index")]
    public ActionResult Index()
    { //etc. }
}
Run Code Online (Sandbox Code Playgroud)

这允许我拥有公共URL,例如:

http://myapp/home/someaction
Run Code Online (Sandbox Code Playgroud)

...以及admin/authenticated URL,例如:

http://myapp/admin/people/someaction
Run Code Online (Sandbox Code Playgroud)

但是现在我想根据用户是在网站的"管理"部分还是"公共"部分,在视图中做一些动态的东西.如何正确地以编程方式访问?

我知道我可以做点什么

if (Request.Url.LocalPath.StartsWith("/Admin"))
Run Code Online (Sandbox Code Playgroud)

......但感觉"很丑".我知道我可以通过访问控制器和动作名称

HttpContext.Current.Request.RequestContext.RouteData.Values
Run Code Online (Sandbox Code Playgroud)

...但是"admin"部分没有反映在那里,因为它只是一个路由前缀,而不是一个实际的控制器名称.

所以,基本的问题是,如何以编程方式确定当前加载的视图是否在"admin"部分下?

c# asp.net-mvc asp.net-mvc-routing attributerouting asp.net-mvc-5

5
推荐指数
1
解决办法
6635
查看次数

SSRS 和 PostgreSQL:如何传递可选参数?

我在 SSRS 报告中使用 PostgreSQL ODBC 数据源。

根据我之前对 MS SQL Server 数据源的了解,要将可选参数传递给 SSRS 数据集查询,您可以这样做:

SELECT *
FROM MyTable
WHERE SomeField = @Param1 OR @Param1 IS NULL
Run Code Online (Sandbox Code Playgroud)

关键是使用OR @Param1 IS NULL它基本上绕过了SomeField = @Param1零件并有效地充当“可选”过滤器。但是,这在使用 PostgreSQL ODBC 数据源时似乎不起作用(不确定是由于 Postgres 还是 ODBC 或两者)。单击“刷新字段”或执行/预览报告时出现错误。

这可能部分是由于无法将命名参数传递到 SQL 中,而是必须使用“?” 像这样:

SELECT *
FROM MyTable
WHERE SomeField = ?
Run Code Online (Sandbox Code Playgroud)

......这使得OR ? IS NULL基本上不可能做到。

那么,有人知道我如何将可选参数传递给 SSRS 中的 PostgreSQL 数据集吗?

postgresql parameters dataset reporting-services ssrs-2012

5
推荐指数
1
解决办法
2903
查看次数

如何使用Datatables.AspNet.Mvc5进行服务器端排序

我正在尝试使用 ASP.NET MVC 和实体框架对 jQuery DataTables 进行服务器端处理。我遇到了Datatables.AspNet Nuget 包,但我不清楚如何使用它在单击表标题时对列进行动态排序。

在Datatables.AspNet GitHub 上的示例中,有这样的内容:

public ActionResult PageData(IDataTablesRequest request)
{
    var data = Models.SampleEntity.GetSampleData(); 
    var filteredData = data.Where(_item => _item.Name.Contains(request.Search.Value));

    // Paging filtered data.
    var dataPage = filteredData.Skip(request.Start).Take(request.Length);

    var response = DataTablesResponse.Create(request, data.Count(), filteredData.Count(), dataPage);

    return new DataTablesJsonResult(response, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)

但我不确定如何根据 IDataTablesRequest 对象的内容进行动态排序,如下所示:

public interface IDataTablesRequest
{
    int Draw { get; }
    int Start { get; }        
    int Length { get; }
    ISearch Search { get; }
    IEnumerable<IColumn> Columns { get; …
Run Code Online (Sandbox Code Playgroud)

c# linq asp.net-mvc entity-framework datatables

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

我可以阻止 EF CF 尝试修改数据库中的“身份”列吗?获取“不支持使用 'Identity' 模式修改列。”

我在我的域中有一个类似于以下的一对多关系:

public class Movie
{
    public int MovieID { get; set; }
    public string MovieName { get; set; }      

    public virtual ICollection<MovieCategory> Categories { get; set; }
}

public class MovieCategory
{
    [Key, ForeignKey("Movie")]
    public int MovieID { get; set; }

    [Key, ForeignKey("Category")]
    public int CategoryID { get; set; }

    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public DateTime DateCreated { get; set; }

    public virtual Movie Movie { get; set; }
    public virtual Category Category { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

通过GETDATE()插入新电影(并在一堆复选框中检查某些类别)在 SQL 中设置 …

c# asp.net-mvc ef-code-first entity-framework-6

0
推荐指数
1
解决办法
1802
查看次数