我还在学习ASP.NET MVC.使用webforms,我会创建一个新文件夹,让我们称之为管理员.在那里,我可能有很多页面用于create_product,edit_product等.因此URL可能看起来像http://somesite.com/admin/create_product.aspx.
但是对于MVC来说,它有点不同.我试图看看这是最好的方法.
请http://somesite.com/admin/product/create做对吗?或者它应该只是http://somesite.com/product/create?如果我是第一种方式,我是否将所有内容都放在"admin"控制器中,还是应该将其分成"产品"控制器?
我知道这可能是主观或个人选择,但我想得到一些建议.
谢谢.
我不确定我做错了什么.我以前从来没有遇到过这个问题,也许我曾经有过这个问题,但我从来没有注意过.我有一个局部视图的页面.提交页面时,将检查模型以查看其是否具有ID.如果是,则更新记录.如果没有,它会创建一个新的.很标准.完成后,模型将返回到视图.我似乎遇到的问题是它没有更新模型的任何更改.它与发布的模型相同.好的,这里有一些代码.我创建了一个全新的项目,它仍然无法正常工作.
此外,我使用Firebug查看返回的原始数据,它仍然是相同的模型.
这是控制器:
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Test()
{
return this.View(new Test());
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult TestDetailPost(Test testin)
{
Test test = new Test();
test.Id = "1";
test.Name = "Guy";
return this.PartialView("TestDetail", test);
}
Run Code Online (Sandbox Code Playgroud)
这是"测试"视图:
@model WebAppTest.Models.Test
@using (Ajax.BeginForm("TestDetailPost", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "TestDetail" }))
{
<p><input type="submit"/></p>
<div id="TestDetail">
@{ Html.RenderPartial("TestDetail", Model); }
</div>
}
Run Code Online (Sandbox Code Playgroud)
这是"测试详细信息"视图:
@model WebAppTest.Models.Test
<p>@Html.TextBoxFor(a => a.Id)</p>
<p>@Html.TextBoxFor(a => a.Name)</p>
Run Code Online (Sandbox Code Playgroud)
而型号:
public class Test
{
public string Id { get; set; } …Run Code Online (Sandbox Code Playgroud)