asp.net-mvc-3 - Action 返回局部 View 和模型

标签 asp.net-mvc-3 action partial-views

我是 MVC 3 的新手,我对正确的方法有疑问。

假设我有一个模型:

public class MyCustomModel
{
       [Required]
        public string UserName { get; set; }

        [Required]
        public DateTime? Birthdate { get; set; }

        [Required]
        public string City {get;set;} //To partial view

        [Required]
        public string Street {get;set;} //To partial view  
  }

这里我有一个观点

@Html.TextBoxFor(m => m.UserName) @Html.TextBoxFor(m => m.BirthDate) @Html.Action("LocationGroup", "Home")//在这应该渲染城市和街道

我的局部 View 会有类似这样的东西: @Html.TextBoxFor(m => m.City) @Html.TextBoxFor(m => m.Street)

这是 Controller 中的操作:

    [ChildActionOnly]
    public ActionResult LocationGroup()
    {
        MyCustomModel model = new MyCustomModel (); //Should i really instantiate a new instace of the model??? and pass it to the partial view
        return PartialView("_TempView", model);
    }

基本上我的一般 View 将包含 texboxex 的所有字段,但现在在我的局部 View 中我也希望正确呈现我的模型中的一些属性,并且在提交表单后应该可以在相同的模型中使用所有其他属性。

所以我的问题是,在发送回部分 View 的操作中,我真的应该实例化模型的新实例吗?但是随后数据将在模型的 2 个实例之间拆分,不是吗?

如何安排,然后如何从局部 View 将数据分配给通用 View 模型?

最佳答案

我没听懂你的问题,但你可以用具有相同名称(但签名不同,因为它们毕竟是方法)的 HttpGetHttpPost 注释 ActionResults,例如

 [HttpGet]
 [ChildActionOnly]
    public ActionResult LocationGroup()
    {
        Model model = new Model();
        return PartialView("_TempView", model);
    }

在 View 中你必须做类似的事情

@model YOURMODELNAME
@using(Html.BeginForm("LocationGroup","Controller",FormMethod.POST)){
 @Html.TextBoxFor(x=>x.UserName)
 @Html.TextBoxFor(x=>x.Birthdate )
 <input type="submit" value="submit" />
}

现在定义一个post类型ActionResult

 [HttpPost]
 [ChildActionOnly]
public ActionResult LocationGroup(YOUR_MODEL_TYPE model)
{
    if(ModelState.IsValid){
     //do something
    }
}

默认模型绑定(bind)器将查看 HttpContext 以查找发布的值名称与模型属性之间的匹配项并自动绑定(bind)该值

关于asp.net-mvc-3 - Action 返回局部 View 和模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16656073/

相关文章:

c# 对象引用未设置为对象的实例

asp.net-mvc-3 - Telerik MVC Grid - 按日期分组

asp.net-mvc - ASP.Net MVC2 自定义模板通过 Ajax 加载和模型更新

rspec - rails_admin View 的局部放置位置

asp.net-mvc - 是否可以通过单击按钮获得 'Swap' 部分 View ?

asp.net-mvc-3 - 使用 NAnt 构建 ASP.NET MVC 3 时出现 System.Web.Mvc 丢失错误

validation - ASP.NET MVC 将 null 转换为零长度字符串

routing - Rails Action Controller 中的未定义方法 `devise_for'

Java添加ActionListener到特殊按钮

javascript - 如何组织不修改状态的操作?