我有一个从主网站发回的一些JSON帖子中使用的URL:
HTTP://site/Services/api.svc/UpdateItem
我们正在慢慢更新网站到ASP.Net MVC 2,并且不想破坏系统中的任何当前URL.(JavaScript刷新问题)
我删除了/Services/api.svc并将此API调用的逻辑移动到以下Controller中:
HTTP://网站/ LegacyApi /的updateItem
不幸的是,在添加路由时,我似乎无法覆盖api.svc并继续收到404错误.
路线:
routes.MapRoute(
"UpdateItemApi",
"Services/api.svc/UpdateItem",
new { controller = "LegacyApi", action = "UpdateItem" }
);
Run Code Online (Sandbox Code Playgroud)
根据MSDN对这个具体问题,路由应该通过.
非常感谢任何帮助.
标准.aspx页面的路由按预期工作,因此这似乎与.svc文件及其处理方式有关.
我对如何在ASP.NET MVC 2.0 R2上使用新的强类型Html.DropDownListFor帮助程序感到十分迷茫和困惑
在我写的视图中:
<%= Html.DropDownListFor(m => m.ParentCategory, new SelectList(Model.Categories, "CategoryId", "Name", Model.ParentCategory), "[ None ]")%>
<%= Html.ValidationMessageFor(m => m.ParentCategory)%>
Run Code Online (Sandbox Code Playgroud)
因此我的Model对象是:
public class CategoryForm : FormModelBase
{
public CategoryForm()
{
Categories = new List<Category>();
Categories.Add(new CategoryForm.Category() {
CategoryId = 1,
Name = "CPUs" });
Categories.Add(new CategoryForm.Category() {
CategoryId = 2,
Name = "Memory" });
Categories.Add(new CategoryForm.Category() {
CategoryId = 3,
Name = "Hard drives" });
}
// ...other props, snip... //
public Category ParentCategory { get; set; }
public …Run Code Online (Sandbox Code Playgroud) asp.net-mvc html-helper viewmodel asp.net-mvc-2 drop-down-menu
我有一个List.aspx绑定到类的视图Kindergarten
在控制器中:
public ActionResult List(int Id)
{
Kindergarten k = (from k1 in _kindergartensRepository.Kindergartens
where k1.Id == Id
select k1).First();
return View(k);
}
Run Code Online (Sandbox Code Playgroud)
这样可行.
但事实并非如此
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Add(...)
{
//...
Kindergarten k = ...
return RedirectToAction("List", k);
}
Run Code Online (Sandbox Code Playgroud)
我应该如何重定向到列表视图,将k作为模型传递?
谢谢!
我在服务器上安装了.net 4.
现在我不知道我是否必须为VS2008安装MVC 2或因为我收到此错误:
无法加载文件或程序集'System.Web.Mvc,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.该系统找不到指定的文件.
response 302当经过身份验证的用户没有权限时,Asp.net MVC2会重定向到登录页面.
我想分成两个动作
有什么办法吗?或者我在授权和表单身份验证方面做错了什么?我能想到的唯一方法是编写自定义授权属性,我想避免使用它.
我正在查看本教程http://asp-umb.neudesic.com/mvc/tutorials/validating-with-a-service-layer--cs,了解如何围绕包装器包装我的验证数据.
我想使用依赖注入.我正在使用ninject 2.0
namespace MvcApplication1.Models
{
public interface IValidationDictionary
{
void AddError(string key, string errorMessage);
bool IsValid { get; }
}
}
Run Code Online (Sandbox Code Playgroud)
//包装
using System.Web.Mvc;
namespace MvcApplication1.Models
{
public class ModelStateWrapper : IValidationDictionary
{
private ModelStateDictionary _modelState;
public ModelStateWrapper(ModelStateDictionary modelState)
{
_modelState = modelState;
}
#region IValidationDictionary Members
public void AddError(string key, string errorMessage)
{
_modelState.AddModelError(key, errorMessage);
}
public bool IsValid
{
get { return _modelState.IsValid; }
}
#endregion
}
}
Run Code Online (Sandbox Code Playgroud)
//控制器
private IProductService _service;
public ProductController()
{ …Run Code Online (Sandbox Code Playgroud) MVC的新手,并且已经在asp.net网站上运行了教程.
它们包含一个自定义html帮助程序示例,用于截断表中显示的长文本.
只是想知道人们使用HTML帮助程序提出了哪些其他解决方案,以及在创建/使用它们时是否有任何最佳实践或要避免的事项.
作为一个例子,我正在考虑编写一个自定义助手来格式化我需要在各个地方显示的日期,但我现在担心可能有一个更优雅的解决方案(我的模型中的IE DataAnnotations)
有什么想法吗?
编辑:
我刚才想到的另一个潜在用途......字符串连接.自定义帮助程序可以将userID作为输入并返回用户全名...结果可以是(标题)(第一个)(中)(最后)的某种形式,具体取决于哪些字段可用.只是一个想法,我还没有尝试过这样的事情.
我有一个在主视图中呈现的局部视图.局部视图利用System.ComponentModel.DataAnnotations和Html.EnableClientValidation().
单击一个链接,包含局部视图的div显示在一个JQuery.Dialog().
然后单击保存按钮,而不在我的验证输入字段中输入任何文本.这会导致客户端验证按预期触发,并在无效字段旁边显示"*required"消息.
单击取消按钮时,我想将客户端MVC验证重置回其默认状态并删除任何消息,为用户再次打开对话框做好准备.有推荐的方法吗?
我想使用cookie在我的网站上注册几页的参数.我尝试了下面的代码,但不喜欢我想要的:
public ActionResult Index(int? dep, int? cat)
{
......
string theDept = Request.QueryString["dep"];
HttpCookie cookie = new HttpCookie("search");
cookie.Values["dep_name"] = theDept;
cookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(cookie);
return View();
}
Run Code Online (Sandbox Code Playgroud)
我在site.master中读到它:
<%
HttpCookie cookie = Request.Cookies["search"] ;
if ((cookie != null) && (cookie.Value != ""))
{
Response.Write(cookie.Values["dep_name"].ToString() + "---" +
cookie.Values["cat_name"].ToString() + "---" + cookie.Values["brand"].ToString());
}
%>
Run Code Online (Sandbox Code Playgroud)
问题:当我单击另一个Request.QueryString["dep"]为null的页面时,我显示的cookie为null.
如果我们尚未清除cookie,如何将其存储在cookie中而不会丢失?
asp.net-mvc-2 ×10
asp.net-mvc ×5
asp.net ×2
c# ×2
html-helper ×2
.net-4.0 ×1
cookies ×1
forms ×1
jquery ×1
modelstate ×1
ninject ×1
url-routing ×1
validation ×1
viewmodel ×1