开发者

Set initial value for model property?

I'm using Entity Framework to create my data objects. I have an entity called Users.开发者_StackOverflow It contains a property named Code, which is an integer.

The problem is that when I pass a blank User entity to my Create view, and call

<%: Html.TextBoxFor(m => m.Code) %>

the textbox is populated with a 0.

I can't set the property to nullable because the value can't be null in my database. Which means I can't set the value to null in my controller.

What do I do?


You shouldn't be binding directly to an EF model, exactly for these types of issues.

EF shouldn't care about UI, and the UI shouldn't care about EF.

The recommended middle-man is always a ViewModel.

Setup a ViewModel in your Controller, which should contain a string property for the code, which you can bind to (like @Divi says).

When you submit the form, map the ViewModel to the EF model in order to persist to the database.


Couldn't you create a string property on the model and bind the view to that? And in the controller set the actual int property based on the string property?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜