小编Cra*_*ntz的帖子

MVC ActionLink生成不同类型的链接......为什么?

我是MVC的新手,并且有一个我正在努力的应用程序.我有2个不同的链接,在我的全球范围内有2条路线,这些路线相当类似

路线1

routes.MapRoute("Category", "Movies/{category}/{subcategory}", 
    new { controller = "Catalog", action = "Index", category = "", subcategory = "" });
Run Code Online (Sandbox Code Playgroud)

路线2

routes.MapRoute("Movie", "Movie/{movie}", 
    new { controller = "Movie", action = "Index", movie = "" });
Run Code Online (Sandbox Code Playgroud)

当我为第一条路线调用一个动作链接时,它会创建它,因为我认为它应该:

.../Movies/Category/SubCategory

但是,当我创建我的第二个链接时,它填充它像这样:

.../Movie?movieId=ff569575-08ec-4049-93e2-901e7b0cb96a

之前我使用的是字符串而不是guid,它仍然在做同样的事情

.../Movie?movieName=Snatch

我的actionlinks设置如下

<%= Html.ActionLink(parent.Name, "Index", "Catalog",
    new { category = parent.Name, subCategory = "" }, null)%>

<%= Html.ActionLink(movie.Name, "Index", "Movie", 
    new { movieId = movie.MovieId }, null)%>
Run Code Online (Sandbox Code Playgroud)

我的应用程序仍然有效,但我认为这种行为很奇怪.任何帮助都会很棒.

谢谢!

c# asp.net-mvc actionlink

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

ASP.NET MVC JSON将HTML表单发布到视图?

我有以下代码:

jQuery的:

$.ajax({
    url: '/personcontroller/getperson',
    cache: false,
    type: "POST",
    data: $('#person').serialize(),
    success: function(data) {
      alert('yay');
    }
    });
});
Run Code Online (Sandbox Code Playgroud)

控制器:

public ActionResult getPerson(Person person)
{
    return new Json(person);
}
Run Code Online (Sandbox Code Playgroud)

Html Form/Spark:

<form id="person">
   <input id="person.Id" type="hidden" value="${ViewData.Model.Person.Id}" />
   <input id="person.Name" value="${ViewData.Model.Person.Name}"></input>
   <input id="person.Age" value="${ViewData.Model.Person.Age}"></input>
   <input value="${ViewData.Model.Person.Gender}"></input>
</form>
Run Code Online (Sandbox Code Playgroud)

当我用表单发布ajax调用时,在我的操作中放置一个断点.人物对象没有填充输入值,我觉得我忽略了一些非常简单的事情......你能不能指出我:

c# asp.net-mvc jquery json

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

如何从控制器获取所有操作名称

我怎么能编写代码来从asp.net MVC中的控制器获取所有动作名称?

我想自动列出控制器中的所有动作名称.

有谁知道如何做到这一点?

非常感谢.

asp.net-mvc

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

.NET中的xslt:param数组

简单的问题,但是解决方案?

我有一个典型的C#应用​​程序运行"new XslCompiledTransform.Transform(...);" 我传递param参数,所有类型字符串.

我想传递一个类型为array的字符串:字符串,甚至可以说是一个对象数组.

我正在使用C#我受限于XSL 1.0.

我怎样才能以干净的方式完成这项任务,以避免在.NET中编写不必要的代码?

c# xslt

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

delphi分配给const?

本网站:http://www.drbob42.com/delphi/wizards.htm

在底部显示了一个非常令人费解的代码

 unit ShareMem;
 { (c) 1997 by Bob Swart (aka Dr.Bob - http://www.drbob42.com }
 interface

 const
...
 uses
   Windows;

 const
   Handle: THandle = 0;
...
 function GetCommandLine: PChar; stdcall;
   external 'kernel32.dll' name 'GetCommandLineA';
...
   begin
     Handle := LoadLibrary('BCBMM.DLL');
 end.
Run Code Online (Sandbox Code Playgroud)

怎么会这样?

delphi const

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

如何阻止maven-shade-plugin阻止opensaml-impl类型的java.util.ServiceLoader初始化

使用OpenSAML 3时,必须首先opensaml-saml-impl使用以下代码行从工件加载组件:

InitializationService.initialize();
Run Code Online (Sandbox Code Playgroud)

用于java.util.ServiceLoader加载任何实现的类型Initializer.

当我编写测试并运行它时mvn integration-test,这工作正常,我可以看到所有内容都已加载:

Assert.assertTrue(
    XMLObjectProviderRegistrySupport
        .getUnmarshallerFactory()
        .getUnmarshallers()
        .size() > 400);
Run Code Online (Sandbox Code Playgroud)

但是,我的项目使用maven-shade-plugin.如果我将代码打包到超级jar中,则上述条件正确:

mvn package
java -jar /path/to/my.jar
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我观察到只有9 unmarshallers已加载(这些opensaml-core,而不是那些在opensaml-saml-impl然而,当我看的输出.mvn package我可以看到,类型包含在阴影罐子:

[INFO] Including org.opensaml:opensaml-saml-impl:jar:3.2.0 in the shaded jar.
[INFO] Including org.opensaml:opensaml-profile-api:jar:3.2.0 in the shaded jar.
[INFO] Including org.opensaml:opensaml-messaging-api:jar:3.2.0 in the shaded jar.
[INFO] Including org.opensaml:opensaml-saml-api:jar:3.2.0 in the shaded jar.
[INFO] Including org.opensaml:opensaml-xmlsec-api:jar:3.2.0 in the shaded jar.
[INFO] Including …
Run Code Online (Sandbox Code Playgroud)

java maven opensaml maven-shade-plugin

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

使用IIS和MVC进行授权的问题

设置授权时出现问题.首先我得到:

<authorization>
  <deny users="?" />
</authorization>
Run Code Online (Sandbox Code Playgroud)

所以我拒绝所有未知用户,然后允许他们查看这些页面:

<location path="Default.aspx">
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</location>

<location path="Public">
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</location>
Run Code Online (Sandbox Code Playgroud)

现在问题..他们可以访问公共页面和Default.aspx ..但不能访问www.mydomain.com或www.mydomain.com/ ..所以www.mydmain.com/Default.aspx工作正常.那么如何让这些工作呢?

iis asp.net-mvc iis-7 authorization

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

亚音速和ADO.NET实体框架之间的比较哪一个更快

我对使用亚音速或ado.net实体框架非常困惑我应该提供哪一个?我使用asp.net mvc创建一个网站,我需要的是更高的性能,我也想用ORM节省时间.那么我应该使用哪个orm?

asp.net subsonic entity-framework

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

在usercontrol MVC和C#中,当前上下文中存在名称'html'或名称'model'

我正在使用Microsoft MVC和C#.我创建了一个usercontrol(example.ascx),并在顶部继承System.Web.MVC.ViewUserControl<PostTransferViewModel>

现在,当我的模型名称附加到ViewUserControl时,我得到"名称'模型'在当前上下文中不存在"和"名称'Html'在当前上下文中不存在.如果我<PostTransferViewModel>从结尾删除了ViewUserControl然后一切正常,但我需要<PostTransferViewModel>.

    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<PostTransferViewModel>" %>

<div class="postTransferTank">
    <h2>
        Approved Post Transfers</h2>
    <% if (Model.ApprovedPostTransfers.Count() == 0)
       { %>
    <span class="emptyList">There are currently no approved Post Transfers for this tank.</span><br />
    <% } %>
    <% else
        { %>
    <%=Html.DisplayFor(x => x.ApprovedPostTransfers,"PostTransferList") %>
    <% } %>
    <br />
    <%=Html.ActionLink<PostTransferController>(x => x.NewPostTransfer(), "Enter Post Transfer", new { @class = "create-link" })%>
    <br />
    <% if (Model.DraftPostTransfers.Count() != 0)
       { %>
    <h2>
        Draft Post Transfers</h2>
    <%=Html.DisplayFor(x …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc user-controls viewusercontrol viewmodel

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

实体框架:如何使用多个上下文并保持同步?

我是EntityFramework的新手.

我的应用程序有一个上下文对象实例池(每个上下文与数据库有1个连接).

问题是,当我更新一个对象(并调用SaveChanges)时,数据会在数据库和更新上下文中更新,但是当我从其他实例中选择时,它会获取所选对象的旧数据.

例:

让我们想象一个名为tbl的表.

该表有2列:id和data.

有1行:id = 1,data = 2.

EFContext context1 = new EFContext();      
EFContext context2 = new EFContext();      
var obj1 = context1.tbl.Where(a => a.id == 1);      
var obj2 = context2.tbl.Where(a => a.id == 1);      
obj2.data = 10;      
context2.SaveChanges(); 
var obj3 = context1.tbl.Where(a => a.id == 1); 
Run Code Online (Sandbox Code Playgroud)

执行这些行后,obj3.data包含2,而不是10.

我怎么解决这个问题?

我不希望每次要访问数据库时都创建一个上下文实例.

刷新不够好我必须在每次查询之前完成它(我的应用程序是多线程的),并且需要花费很多时间.

如果我有办法在每次尝试选择时告诉实体框架执行查询,那就太棒了.

谢谢!

c# database oracle entity-framework visual-studio

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