【问题标题】:MVC: 404 error, ViewModel not foundMVC:404 错误,未找到 ViewModel
【发布时间】:2015-11-18 10:36:32
【问题描述】:

我是 MVC 新手,当我尝试将按钮插入表格时遇到这个令人沮丧的错误。

我在 EditorTemplates 中有我的 .cshtml ViewModel:

@model EditorForSample.Models.ProductViewModel


<tr>
    <td>@Html.CheckBoxFor(m => m.Selected)</td>
    <td colspan="1">
        @Model.Name
        @Html.HiddenFor(m => m.Name)
    </td>
    <td>
        @Model.Password
        @Html.HiddenFor(m => m.Password)
    </td>
    <td>
        @Html.RadioButtonFor(e => e.Locked, true)</td>
    <td>
        @Html.RadioButtonFor(e => e.Locked, false)</td>
</tr>

对于模型:

public class ProductViewModel
{
    public bool Selected{ get; set; }
    public string Name { get; set; }
    public string Password { get; set; }
 public bool Locked { get; set; }
}

我在 .cshtml 中收到 404 错误,即使我无法确定语法错误的原因。

编辑:好的,事实证明,当我手动更改 URL 时,上述内容确实有效,而我的问题是路由自行随机更改并尝试重定向到模型视图 CSHTML。

【问题讨论】:

  • View Model 的 @model EditorForSample.Models.ProductViewModel 命名空间是否正确?此外,如果文件夹结构中的控制器名称 FooController 和控制器操作 FooAction 应该有 Views 文件夹(从根目录),则 Views 应该有 Foo 文件夹,如果默认应该有 cshtml FooAction.cshtml
  • 是的。它工作正常,除非我添加单选按钮行。然后一切都结束了。
  • 404 是未找到错误。与你的看法无关。您在某处调用不存在的方法(可能是链接)。
  • 我已经阅读了那个答案。没有帮助。缺少的文件是 /Views/Home/EditorTemplates/ProductViewModel.cshtml。

标签: html asp.net-mvc-4 model-view-controller


【解决方案1】:

您应该像这样将视图模型发送到视图。

ProductViewModel productViewModel= new ProductViewModel();

//populate productViewModel with values

View(productViewModel);

还要确保您在文件顶部添加了正确的命名空间

像这样:

using Project.Models; 

编辑:

在视图中为同一模型属性添加单选按钮的示例:

@Html.RadioButtonFor(model => model.Selected, "false") 
@Html.RadioButtonFor(model => model.Selected, "true")

在控制器中应该是这样的:

    [HttpPost]
    public ActionResult Index(MyViewModel model)
    {
        return Content("IsFemale: " + model.Selected);
    }

我认为这会激励你。当然要根据自己的需要去修改。

【讨论】:

  • 我已经这样做了。我可以让它正常工作,除非我添加单选按钮行。然后我突然收到一个 404 错误,即使它 似乎 是正确的语法(尽管我对 HTML 不是很好,所以不是 100% 确定)。我的问题是关于如何获得单选按钮,或者当我尝试添加单选按钮时我究竟是如何破坏 .cshtml 的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-25
  • 1970-01-01
  • 2019-02-19
  • 2018-05-03
  • 2015-09-19
  • 2013-12-03
相关资源
最近更新 更多