我正在使用专业的 asp.net mvc 2.0 框架,似乎他将他的数据注释标签放在也生成 linq 到 sql 的类上。
[Table(Name = "Products")]
public class Product
{
[HiddenInput(DisplayValue = false)]
[Column(IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert)]
public int ProductID { get; set; }
[Required(ErrorMessage = "Please enter a product name")]
[Column] public string Name { get; set; }
[Required(ErrorMessage = "Please enter a description")]
[DataType(DataType.MultilineText)]
[Column] public string Description { get; set; }
[Required]
[Range(0.01, double.MaxValue, ErrorMessage = "Please enter a positive price")]
[Column] public decimal Price { …Run Code Online (Sandbox Code Playgroud) 数据库表
语言
<%: Html.DropDownList("SprakID", new SelectList(ViewData["Sprak"] as IEnumerable, "languageID", "language", Model.languageID))%>
Run Code Online (Sandbox Code Playgroud)
目标:
在 DropDownList 中显示语言名称和 languageID。
问题:
不知道如何在下拉列表中同时显示语言和语言ID?
我有一条西班牙语验证消息,我正在尝试使用 JavaScript 显示该消息。所有像上面这样的特殊字符都会变成 & #243;。只有当我使用 JavaScript 时才会发生这种情况,还有一些西班牙语验证消息,我通过服务器端显示它们,它们很好。
errorString = "<%:Validation.xyz %>";
我正在尝试从资源文件中获取。
有人能想到快速解决办法吗?
我在 asp.net mvc2 项目中创建了 Html helper 类:
public static class CaptionExtensions
{
public static string Captions(this HtmlHelper helper, Captions captions)
{
var sb = new StringBuilder();
sb.AppendLine("<ul>");
foreach (var caption in captions)
{
// var url = Url.Action("CaptionCategory", new {id = caption.Code} )
sb.AppendLine("<li>");
sb.AppendLine( "<a href="+ url + ">");
sb.AppendLine( caption);
sb.AppendLine( "</a>");
sb.AppendLine("</li>");
}
sb.AppendLine("</ul>");
return sb.ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
我需要生成与注释行中的方式类似的 url。注释代码是我在控制器类中的做法,但这是辅助类(静态上下文)。任何帮助???
我的ASP MVC3视图模型在Edit方法加载此特定页面时工作正常,但是当用户点击保存并进行回发时,两个集合对象(List<T>)中包含的所有信息都将丢失.有任何想法吗?
这是视图中的代码.这会正确加载所有代理信息(ID和状态代码)
@for (int i = 0; i < Model.Fixed.Count; i++)
{
if(!String.IsNullOrWhiteSpace(Model.Fixed[i].AgentId))
{
fixedRow++;
if (fixedRow > 2)
{
var rowId = "row" + fixedRow.ToString() + "F";
<tr id=rowId class="noSee">
<td>
@Html.DropDownListFor(model => model.Fixed[i].StateCode,
(SelectList)ViewBag.StateCodeList, Model.Fixed[i].StateCode)
</td>
<td>
@Html.EditorFor(model => model.Fixed[i].AgentId)
@Html.ValidationMessageFor(model => model.Fixed[i].AgentId)
</td>
@if(fixedRow > 1)
{
var send = "MoreFixed(" + (fixedRow + 1).ToString() + ");";
var dataId = "plus" + fixedRow.ToString() + "F;";
<td id=@dataId class="more" onclick=@send>+</td>
}
</tr>
}
else
{ …Run Code Online (Sandbox Code Playgroud) 下面是我视图中显示的一组单选按钮.我可以通过这个简单的代码检索所选项目
string criteria = filter["criteria"];
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何保留所选项目.控制器回发到视图后,将始终选择默认单选按钮.
<form method="post">
@Html.TextBox("searchValue", ViewBag.CurrentFilter as string, new { placeholder = "Search" })
<input type="image" src="@Url.Content("~/Content/Images/Filter.bmp")" alt="Filter" style="padding-top: 0px;" />
<span class="error" style="clear: both;">
@ViewBag.ErrorMessage
</span>
<a href="#" style="padding-left: 30px;"></a>
<br />
<br />
<input type="radio" name="criteria" id="bankName" value="bankName" checked="true"/>
<label for="bankName">Bank Name</label>
<input type="radio" name="criteria" id="EPURL" value="EPURL" />
<label for="EPURL">EPURL</label>
<input type="radio" name="criteria" id="specialNotes" value="specialNotes" />
<label for="SpecialNotes">Special Notes</label>
<input type="radio" name="criteria" id="email" value="email" />
<label for="email">Email</label>
<input type="radio" name="criteria" id="dynamicsId" value="dynamicsId" />
<label …Run Code Online (Sandbox Code Playgroud) asp.net-mvc postback radio-button asp.net-mvc-3 asp.net-mvc-2
编辑:更清楚的是,我希望onBegin调用一个从Ajax调用返回true或false值的函数.该错误值需要能够触发onBegin中止表单提交,就像我从非ajax函数返回false值一样.
如果存在某些条件,我需要将值false返回给Ajax.BeginForm的onBegin.这样,如果存在某些数据库条件,我可以阻止表单提交.
但是,为了使用Ajax Get的结果,我需要设计函数来使用回调,这意味着我不能让onBegin使用的函数返回ajax值.那么如何将结果传递给onBegin?
基本上我有:
`Ajax.BeginForm(onBegin="checkIfMyConditionExists();"`}...
function checkIfMyConditionExists(){
$.get(checkConditionURL, function(data){
doSomething(data);
});
Run Code Online (Sandbox Code Playgroud)
如何将这些数据(这可能是我的真值或假值)转换为onBegin?
从行动的角度来看,我如何区分ajax请求和常规请求.
puclic class GroupController : Controller
{
public ActionResult AddGroup()
{
if(//regular request...)
return view()
else //an ajax call
return Partial("GroupPartialView)
}
}
Run Code Online (Sandbox Code Playgroud)
我们的想法是,如果将用户添加到不存在的组中,则可以使用对话框添加该组,而无需离开"管理"用户页面.
谢谢你的帮助.
我正在构建一个asp.net MVC 2应用程序.
我有一个列表视图,它根据参数列出项目.在数据库中,我有一个父表和子表,因此我的列表视图列出了父id的id与参数中指定的值匹配的所有子记录.
这是我的控制器和型号:
public ActionResult List(int ParentID)
{
return View(new Models.ChildListModel(ParentID));
}
public class ChildListModel
{
public int ParentID {get;set;}
public ManagementUserListModel(int iParentID)
{
this.ParentID = iParentID;
this.Children = DataAccessLayer.ListChildrenForParent(iParentID);
}
public List<Child> Children {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
我还有一个细节并为该控制器创建操作.详细信息和创建视图有一个"返回列表"操作,我想返回列表视图,并维护原始的ParentID.到目前为止,我一直在通过在列表,编辑,创建和详细信息视图中创建名为ParentID的隐藏字段来实现此目的,以便正确填充模型的ParentID属性:
<%= Html.HiddenFor(model => model.ParentID) %>
Run Code Online (Sandbox Code Playgroud)
然后在每个视图的"返回列表"操作中,我传递了ParentID:
<%=Html.ActionLink("Back to List", "List", new {ParentID = Model.ParentID}) %>
Run Code Online (Sandbox Code Playgroud)
这一切都有效,但我不是在html中存储原始ID的忠实粉丝.有没有更好的方法来做到这一点?是否有一些内置的方式来加密数据(有点像标准的asp.net viewstate呢?)我只是想尝试实现某种防篡改,并试图避免使用会话状态(TempData等),因为我不想处理会话超时.
如果要使用spark引擎进行渲染,我是否可以通过asp.net MVC 2获得新的强类型Html助手的优势?
asp.net-mvc-2 ×10
asp.net-mvc ×6
c# ×3
postback ×2
.net ×1
ajax ×1
asp.net ×1
encoding ×1
html-helper ×1
javascript ×1
linq-to-sql ×1
radio-button ×1
routevalues ×1
url-action ×1
viewmodel ×1