我有这样简单的ASP.NET MVC动作:
public ActionResult Edit(EditPostViewModel data)
{
}
Run Code Online (Sandbox Code Playgroud)
在EditPostViewModel具有验证属性是这样的:
[Display(Name = "...", Description = "...")]
[StringLength(100, MinimumLength = 3, ErrorMessage = "...")]
[Required()]
public string Title { get; set; }
Run Code Online (Sandbox Code Playgroud)
在视图中,我使用以下帮助程序:
@Html.LabelFor(Model => Model.EditPostViewModel.Title, true)
@Html.TextBoxFor(Model => Model.EditPostViewModel.Title,
new { @class = "tb1", @Style = "width:400px;" })
Run Code Online (Sandbox Code Playgroud)
如果我在表单上提交此文本框放在验证中,将首先在客户端上完成,然后在service(ModelState.IsValid)上完成.
现在我有几个问题:
这可以与jQuery ajax提交一起使用吗?我正在做的只是删除表单,然后单击提交按钮javascript将收集数据,然后运行$.ajax.
服务器端会ModelState.IsValid工作吗?
如何将验证问题转发回客户端并将其呈现为使用build int validation(@Html.ValidationSummary(true))?
Ajax调用示例:
function SendPost(actionPath) {
$.ajax({
url: actionPath,
type: 'POST',
dataType: 'json',
data:
{
Text: $('#EditPostViewModel_Text').val(), …Run Code Online (Sandbox Code Playgroud) 我已经从MySQL数据库生成了EF4模型,并且我已经包含了StoredProcedures和Tables.
我知道如何针对EF进行定期检查/更新/获取/删除操作,但我找不到我的StoredProcedures.
这就是我所希望的:
using (Entities context = new Entities())
{
context.MyStoreadProcedure(Parameters);
}
Run Code Online (Sandbox Code Playgroud)
编辑1:
这是没有EF的情况:
sqlStr = "CALL updateGame(?,?,?,?,?,?,?)";
commandObj = new OdbcCommand(sqlStr, mainConnection);
commandObj.Parameters.Add("@id,", OdbcType.Int).Value = inGame.id;
commandObj.Parameters.Add("@name", OdbcType.VarChar, 255).Value = inGame.name;
commandObj.Parameters.Add("@description", OdbcType.Text).Value = ""; //inGame.description;
commandObj.Parameters.Add("@yearPublished", OdbcType.DateTime).Value = inGame.yearPublished;
commandObj.Parameters.Add("@minPlayers", OdbcType.Int).Value = inGame.minPlayers;
commandObj.Parameters.Add("@maxPlayers", OdbcType.Int).Value = inGame.maxPlayers;
commandObj.Parameters.Add("@playingTime", OdbcType.VarChar, 127).Value = inGame.playingTime;
return Convert.ToInt32(executeScaler(commandObj));
Run Code Online (Sandbox Code Playgroud)
PS.如果需要,我可以更改EF版本
编辑1:
CREATE DEFINER=`106228`@`%` PROCEDURE `updateGame`(
inId INT,
inName VARCHAR(255),
inDescription TEXT,
inYearPublished DATETIME,
inMinPlayers INT,
inMaxPlayers INT,
inPlayingTime VARCHAR(127)
)
Run Code Online (Sandbox Code Playgroud) 我有一个ASP.NET MVC 2网站(VS2010),我已升级到ASP.NET MVC 3(VS2012),这可以在本地IIS7上运行,但在发布时我在主机上得到此异常:
Could not load file or assembly 'System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)
在一些seartch之后,我发现这表明我应该在一些引用上设置CopyLocal(包含System.Web.WebPages)并且还使用VS2012中的发布工具,但这会产生以下异常?
Could not load file or assembly 'System.Web.WebPages.Deployment, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)
我找不到任何部署DLL来设置copyLocal?
我该怎么解决这个问题?
我的MS SQL数据库中有3个表,我已经在我导入这3个表的项目中添加了EntityFramework(最新).第一个问题是没有建立任何实体,所以我将"代码生成策略" None改为Default.
建成之后,我得到了
X已经包含Y的定义
在实体的所有属性上.
当仔细观察时,它会产生一个部分ex Users.cs和一个部分Userin MainModel.Designer.cs?
为什么会产生User.cs?我在另一个项目中有类似的设置,EF设置相同的设置,没有User.cs?
Edit1:我可以看到一个不同的东西,那就是在失败的项目中使用强空间类型设置为False,但是不能将它设置为true(灰色)?
嗨,
我需要为我的APS.NET MVC 3网站中的操作生成正确的URL,这必须在Gloabl.asax的Application_Start中完成.
我试过设置一个UrlHelper,但是HttpContext.Current总是为空?
我寻找的地址是这样的:http://www.mysite.se/MyController/MyAction.
我也试过VirtualPathUtility.ToAbsolute("〜/"),但这只会给我"/ mysite /"
我有一个旧网站,我想使用像HTML帮助程序之类的东西来生成特殊的HTML(在这种情况下是复杂的按钮).我知道这在ASP.NET MVC中是如何工作的,但我怎么能在Webform(而不是Razor)中做到这一点.
我已经读过有关静态方法的建议,如下所示:
public class Helpers
{
public static string Label1(string target, string text)
{
return String.Format("<label for= '{0}'>{1}</label>", target, text);
}
}
Run Code Online (Sandbox Code Playgroud)
但是如何在Webform中使用它?
最好的祝福
我已将我的ASP.NET MVC(3)站点上传到我的主机,但它在所有页面的首次加载时很慢(即使没有数据提取)?
我第一次访问startpage它需要7.30 s,如果我在1分钟后点击reaload将需要1.05 s,如果我重复点击reaload它会给我500 ms和之间800 ms.
如果我在大约5分钟之后返回并点击重载,我会7 s再次加载?
如果我从我的localhost(IIS7)运行相同的websight,我将1 s第一次650 ms获得快速重新加载.
网页使用的是数据库,但在两种情况下都是相同的数据库(放在我的主机上).
该网页是www.biss.se
我应该在哪里开始看?
编辑:
这是我的Application_Start()
protected void Application_Start()
{
AccountModel accountModel = new AccountModel();
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
MappingHandler.RegisterMappings();
#region Register Extra DataNotations for Display Attribute
ModelMetadataProviders.Current = new DisplayMetaDataProvider();
#endregion
if (!accountModel.CheckIfAdminAccountExists("adminAccount"))
{
accountModel.CreateUser("adminAccount",
"Admin",
"Admin",
"",
"",
postCode: "",
locationId: "",
inactive: false,
siteRole: Controllers.SiteRoles.Admin,
activatedByUser: true);
}
}
Run Code Online (Sandbox Code Playgroud) asp.net-mvc ×4
c# ×3
.net ×2
asp.net ×2
ajax ×1
helpers ×1
hosting ×1
iis ×1
jquery ×1
mysql ×1
performance ×1
routing ×1
url ×1
validation ×1
webforms ×1