在asp.net mvc中创建新数据库记录时必填字段

时间:2011-06-09 22:22:18

标签: asp.net-mvc asp.net-mvc-3

我是ASP.NEt MVC的新手。我一直在尝试创建一个新的数据库记录。

  public ActionResult Create()
    {


        var model = new Maping();
        return View(model);
    } 

    //
    // POST: /Customerservice/Create

    [HttpPost]
    public ActionResult Create([Bind(Exclude="CustomerServiceMappingID")] Maping serviceToCreate)
    {
        if (!ModelState.IsValid)

                return View();

       var dc = new ServicesDataContext();
       String s = serviceToCreate.ServiceID.ToString();

       if (String.IsNullOrEmpty(s))
           ModelState.AddModelError("ServiceID", "ServiceID is required!");

        dc.Mapings.InsertOnSubmit(serviceToCreate);
         dc.SubmitChanges();

       return RedirectToAction("Index","Home");
    }

所以,我需要做的是我需要ServiceID成为强制性的...我尝试了这个并没有多大用处。那么,请你帮帮我吗?

另外,我需要将tableID的另一列customerID发送回Index方法。

2 个答案:

答案 0 :(得分:0)

如果ServiceId是整数,则应自动要求它。否则,您可以将此属性放在模型类中的ServiceId上。

[Required]
public string ServiceId {get;set;} //assuming you are using a string

你可以张贴你的模特吗?

答案 1 :(得分:0)

两件事......

1) 您需要将Is Null = false添加到数据库模型中,以便当DataContext尝试将新记录保存起来时,如果设置了这些属性或者您需要提供一个新ID,它将创建一个新ID。

2) 向Maping模型添加一个属性,告诉MVC您在Create Action中抛出的错误。

[Required]
public int ServiceID // <- replace with the correct type.

如果你的指数行动是这样的......

public ActionResult Index(int customerID), then you can send it with the RedirectToAction.

new { customerId = /* insert ID here */ }

我认为是该方法调用中的第三个参数。