我正在使用MVC 4和Entity Framework来开发一个Web应用程序.我正在使用加载了javascript的部分视图.其中之一是包含验证的创建视图.这就是我的问题:验证.我有一个自定义验证逻辑,例如,如果用户在某个字段(如"名称")中输入某些数字,则会显示错误.
在这里,使用部分视图,它将我的部分视图重定向到显示的错误,但我想要做的是保持在我的主视图(索引视图)并保留显示错误的部分视图.
编辑:
这是我的部分观点:
@model BuSIMaterial.Models.Person
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Person</legend>
<div class="editor-label">
First name :
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.FirstName, new { maxlength = 50 })
@Html.ValidationMessageFor(model => model.FirstName)
</div>
<div class="editor-label">
Last name :
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.LastName, new { maxlength = 50 })
@Html.ValidationMessageFor(model => model.LastName)
</div>
<div class="editor-label">
National number :
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.NumNat, new { maxlength = 11 })
@Html.ValidationMessageFor(model => model.NumNat)
</div>
<div class="editor-label">
Start …Run Code Online (Sandbox Code Playgroud) 所以这里是上下文:开发 ASP.NET MVC 4 web 应用程序,我在我的数据库中有一个表ProductAllocations,它由 2 个外键组成:一个来自我的表Products另一个来自表Persons。我有另一个表,车辆,其中包含表产品的外键
我想选择按产品分组的分配及其信息(一个产品可以多次分配)。这是我的存储过程:
ALTER PROCEDURE GetAllVehicles
AS
BEGIN
SET NOCOUNT ON
SELECT
p.FirstName,
p.LastName,
pa.EndDate,
pr.PurchaseDate,
pr.SerialNumber,
pr.CatalogPrice,
v.PlateNumber,
v.FirstCirculationDate,
V.FirstDrivingTax,
v.UsualDrivingTax
FROM bm_ProductAllocations AS pa
INNER JOIN bm_Persons AS p ON pa.Id_Person = p.Id_Person
INNER JOIN bm_Products AS pr ON pa.Id_Product = pr.Id_Product
INNER JOIN bm_Vehicles AS v ON pr.Id_Product = v.Id_Product
GROUP BY pa.Id_Product
END
Run Code Online (Sandbox Code Playgroud)
但是,Group By 子句生成错误:Column 'bm_Persons.FirstName' is invalid …
我正在使用ASP.NET MVC 4来构建一个简单的Intranet Web应用程序.我已经建立了登录系统并配置了RouteConfig.cs以将登录视图显示为"主页".
我的问题很简单:我还有其他观点,如果他们没有登录,"访客"就无法访问.为了执行测试,我尝试直接通过URL访问这些页面并且它可以工作.如何通过阻止访问所有页面(登录页面除外)来确保这一点?
我已经阅读了有关Web.config和授权的内容,但没有任何效果.有帮助吗?
编辑:正如Khanh TO所说,使用AutorizeAttribute是最好的方法.但是,我还有一点问题.当我以简单用户身份登录时,我应该无法看到管理页面(就是这种情况)但是当我尝试这样做时,它会将我重定向到登录页面(我已经登录了!) .我认为这是因为下面的代码.问题是,如果用户试图尝试未经授权的页面,我想重定向到主页.可以这样做吗?
这是我所说的代码:
<authentication mode="Forms">
<forms loginUrl="~/User/Login" timeout="2880" />
</authentication>
Run Code Online (Sandbox Code Playgroud)
此外,我想要精确地将我的用户存储到一个简单的表中,其中角色由bool类型定义(isAdmin以了解用户是否是管理员).
我正在尝试转换一个字符串,它表示一个毫秒格式的日期,如下所示:
var start = new Date(s);
Run Code Online (Sandbox Code Playgroud)
但是,似乎它不起作用,因为当我试图显示日期时,我有"无效日期"作为错误消息.
我想得到的是这种格式的日期:
Wed May 07 2014 09:00:00
Run Code Online (Sandbox Code Playgroud)
这可能吗?
编辑:s变量的原始值是由13个数字组成的字符串(例如:13982762900000)
我正在使用ASP.NET MVC 4,我正在尝试将JavaScript中的值传递给Controller Action.这是我在JavaScript中尝试做的事情:
function DoubleClick() {
debugger;
var id = 1;
$.ajax({
type: "POST",
url: "/Home/GetAppId",
data: { id: id}
});
}
Run Code Online (Sandbox Code Playgroud)
我的行动(非常简单的行动):
public JsonResult GetAppId(int id)
{
//some code will be included here
}
Run Code Online (Sandbox Code Playgroud)
在我的布局模板中,我正确地包含了我的脚本(实际上我在一些ohter页面中使用JS并且它有效):
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery.validate.globalize.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.js")" type="text/javascript"></script>
<link href="@Url.Content("~/Content/jquery-ui-1.10.4.custom.min.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-ui-1.10.4.custom.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.ui.core.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.ui.datepicker.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/DatePickerReady.js")" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
当我打开Chrome开发工具(F12)时,我在控制台选项卡中看到以下错误消息:
未捕获的ReferenceError:未定义jQuery
我真的不知道问题出在哪里.任何的想法?
我正在使用Entity Framework和MVC 4来开发Web应用程序.我还使用名为VehicleTypeViewModel的ViewModel,它是这样创建的:
public class VehicleTypeViewModel
{
public VehicleType VehicleType { get; set; }
public ProductType ProductType { get; set; }
[RegularExpression(@"^[a-zA-Zàéèêçñ\s][a-zA-Zàéèêçñ\s-]+$", ErrorMessage = "Invalid name !")]
public string Name { get; set; }
[Range(0, 300)]
public int CO2 { get; set; }
public List<SelectListItem> ProductCompanies { get; set; }
public List<SelectListItem> MotorTypes { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在我的编辑操作中,一切都很好,但有一点:当我调试,到达该db.Attach(...)步骤时,我的应用程序抛出一个异常,说:
The object cannot be attached because it is already in the object context. An object can only be reattached …Run Code Online (Sandbox Code Playgroud) 我在 aspx 上有一个 asp 按钮:
<asp:Button id="btnReport2" name="btnReport2" runat="server" class="gradientBlueBtn" Text="Show Report" OnClientClick="Alert();" ToolTip="Report"/>
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在调用一个使用 AJAX 调用 C# 方法的 javascript 函数。我这样做:
<script>
function Alert()
{
$.ajax({
type: "POST",
url: "Selection.aspx/GetReport",
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function()
{
alert('success');
},
error: function()
{
alert('error');
}
});
}
</script>
Run Code Online (Sandbox Code Playgroud)
问题是,当我单击按钮时总是收到错误消息。有什么我做错了吗?
编辑:C# 方法。我已经放置了一个断点来查看该方法是否被调用,但显然不是。
public void GetReport()
{
AddFilters();
decimal localCurrencyRate;
App_Data.BulkImportDSTableAdapters.ClientsTableAdapter tadptClients = new App_Data.BulkImportDSTableAdapters.ClientsTableAdapter();
string legalEntityID = string.Empty;
if (txtSrcSys.Text != null)
{
DataTable dtSSYS = tadptClients.GetLegalEntityID(txtSrcSys.Text);
if (dtSSYS.Rows.Count > 0) …Run Code Online (Sandbox Code Playgroud) 我得到了一个字符串格式的DateTime:
"05/30/2014 12:00:00"
Run Code Online (Sandbox Code Playgroud)
我想通过这样做从这个字符串创建一个DateTime对象:
DateTime startDate = DateTime.Parse(startDate);
Run Code Online (Sandbox Code Playgroud)
但是,我有一个错误,说这个方法有一些无效的参数:
Error 1 - The best overloaded method match for 'System.DateTime.Parse(string)' has some invalid arguments
Run Code Online (Sandbox Code Playgroud)
当我正在阅读文档时,字符串参数绝对是一个很好的论据.我正在做什么有什么问题?
c# ×5
asp.net-mvc ×4
jquery ×4
javascript ×3
ajax ×2
asp.net ×2
datetime ×2
security ×1
sql ×1
sql-server ×1
t-sql ×1