Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC(MVC3)检查模型是否存在或具有值_Asp.net Mvc_Asp.net Mvc 3_Asp.net Mvc Routing - Fatal编程技术网

Asp.net mvc MVC(MVC3)检查模型是否存在或具有值

Asp.net mvc MVC(MVC3)检查模型是否存在或具有值,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc Routing,我已经创建了一个工作dropdownlist,它从选择列表Model.IssueSocialSec获取数据,然后将来自数据库的值设置为Model.SocialDBValue 但是,当我单击一个编辑链接时,查询库会将模型传递回页面,这是可行的,但是如果我执行了到页面的所需重定向路由,并且没有绑定模型的内容,那么页面就会失败。我将尝试让它传回一个空模型,但我想我会发布这个,因为我总是喜欢听到关于“最佳实践”和经验教训的反馈 @Html.DropDownListFor(m => m.Selec

我已经创建了一个工作dropdownlist,它从选择列表Model.IssueSocialSec获取数据,然后将来自数据库的值设置为Model.SocialDBValue

但是,当我单击一个编辑链接时,查询库会将模型传递回页面,这是可行的,但是如果我执行了到页面的所需重定向路由,并且没有绑定模型的内容,那么页面就会失败。我将尝试让它传回一个空模型,但我想我会发布这个,因为我总是喜欢听到关于“最佳实践”和经验教训的反馈

 @Html.DropDownListFor(m => m.SelectedSocial, new SelectList(Model.IssueSocialSec, "Value", "Text", Model.SocialDBValue), "") 

听起来您只需要将
DropDownListFor
包装在
中,并使用指向允许您编辑的操作的url。如果表单是幂等运算,则可以使用
GET
请求,并且当
的值更改时,可以使用JavaScript提交表单,当禁用JavaScript时,返回到呈现提交按钮

一般来说,我构造MVC控制器和动作

public class ProfilesController : Controller
{
    public IProfileRepository Profiles { get; private set; }

    public ProfilesController(IProfilesRepository profiles)
    {
        Profiles = profiles;
    }

    [HttpGet]
    public ActionResult Index()
    {
        var profiles = Profiles.All();

        return View(new ProfilesModel { Profiles = profiles });
    }

    [HttpGet]
    public ActionResult Edit(int id)
    {
        var profile = Profiles.GetById(id);

        return View(new ProfileModel { Profile = profile });
    }

    [HttpPost]
    public ActionResult Edit(ProfileModel model)
    {
        if (!ModelState.IsValid)
        {
            return View(model);
        }

        var profile = Profiles.GetById(id);       

        // update the profile 
        Mapper.Map(model, profile);

        if (Profiles.Update(profile))
        {
            TempData["message"] = "Profile updated successfully";
        }

        return RedirectToAction("Edit");
    }
}

Index
将呈现所有配置文件。针对每个配置文件,使用一个
来了解他们的代码结构。

我最终将其修复为:

    ChildInfoModel childviewmodel = new ChildInfoModel();
    return View(childviewmodel);
在我尝试这样做之前:
返回视图()

谢谢,我会调查一下。。。我一直发现所有的MVC解决方案都有不错的“片段”,但没有一个最终能给我真正想要的。这一点也不像是我想建造的房子的蓝图。我发现它就像一个谷仓或棚子的蓝图。我意识到他们并没有在构建我的应用程序,但我不是唯一一个感觉Nerbinent、MVC音乐商店、体育商店、Silk、ProDinner和其他应用程序没有太大帮助的开发人员。例如:这不是任何人使用的@EditorForModel()所有这些都会直接上下弹出所有模型信息。除非我遗漏了什么,这是一个快速的夫妻店无装饰页面。嗯,根据我的经验,即使是妈妈和爸爸想要的领域也在四处移动等等。。。让我想起了我读到的最新vs studio lightswitch评论,“…使简单的事情变得超级简单,而困难的事情几乎不可能”。。。对不起,这是样品,应该照原样拿。我发现理解框架的最好方法是通读源代码,设置断点,调试框架代码,并尝试每天了解一些新的内容。您可以指定自己的模板,以便
@Html.EditorForModel()
使用模板进行标记。