我是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)
我的应用程序仍然有效,但我认为这种行为很奇怪.任何帮助都会很棒.
谢谢!
我有以下代码:
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调用时,在我的操作中放置一个断点.人物对象没有填充输入值,我觉得我忽略了一些非常简单的事情......你能不能指出我:
我怎么能编写代码来从asp.net MVC中的控制器获取所有动作名称?
我想自动列出控制器中的所有动作名称.
有谁知道如何做到这一点?
非常感谢.
简单的问题,但是解决方案?
我有一个典型的C#应用程序运行"new XslCompiledTransform.Transform(...);" 我传递param参数,所有类型字符串.
我想传递一个类型为array的字符串:字符串,甚至可以说是一个对象数组.
我正在使用C#我受限于XSL 1.0.
我怎样才能以干净的方式完成这项任务,以避免在.NET中编写不必要的代码?
本网站: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)
怎么会这样?
使用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) 设置授权时出现问题.首先我得到:
<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工作正常.那么如何让这些工作呢?
我对使用亚音速或ado.net实体框架非常困惑我应该提供哪一个?我使用asp.net mvc创建一个网站,我需要的是更高的性能,我也想用ORM节省时间.那么我应该使用哪个orm?
我正在使用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) 我是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.
我怎么解决这个问题?
我不希望每次要访问数据库时都创建一个上下文实例.
刷新不够好我必须在每次查询之前完成它(我的应用程序是多线程的),并且需要花费很多时间.
如果我有办法在每次尝试选择时告诉实体框架执行查询,那就太棒了.
谢谢!