Hi all,
I am new to Umbraco and fairly new to MVC. Loving Umbraco but I am very stuck on creating a member.
I am using the register member snippet, I have added some A title & First name / surname to my member type. The Title value will not save from the drop down list no matter what I do. I have made a custom editor as per the comments in the snippet.
IDataTypeService dataTypeService = Umbraco.Core.Composing.Current.Services.DataTypeService;
// Change number to id of your custom values (We should change this to get them by name and wrap it in to a class)
IDataType dataType = dataTypeService.GetDataType(1119);
ValueListConfiguration preValues = (ValueListConfiguration)dataType.Configuration;
List<SelectListItem> items = new List<SelectListItem>();
foreach (ValueListConfiguration.ValueListItem item in preValues.Items)
{
items.Add(new SelectListItem { Text = Convert.ToString(item.Value), Value = Convert.ToString(item.Id) });
}
}
@*
@{
foreach (ValueListConfiguration.ValueListItem item in preValues.Items)
{
<option value="@Convert.ToString(item.Id)">@item.Value</option>
}
}
@**@
And here is the main signup view
@if (registerModel.MemberProperties != null)
{
@*
It will only displays properties marked as "Member can edit" on the "Info" tab of the Member Type.
*@
for (var i = 0; i < registerModel.MemberProperties.Count; i++)
{
@Html.LabelFor(m => registerModel.MemberProperties[i].Value, registerModel.MemberProperties[i].Name)
@Html.HiddenFor(m => registerModel.MemberProperties[i].Alias)
@*
By default this will render a textbox but if you want to change the editor template for this property you can
easily change it. For example, if you wanted to render a custom editor for this field called "MyEditor" you would
create a file at ~/Views/Shared/EditorTemplates/MyEditor.cshtml", then you will change the next line of code to
render your specific editor template like:
@Html.EditorFor(m => registerModel.MemberProperties[i].Value, "MyEditor")
*@
if (registerModel.MemberProperties[i].Alias == "title")
{
@Html.EditorFor(m => registerModel.MemberProperties[i].Value, "MemberTitleSelect", new { id = registerModel.MemberProperties[i].Value })
@Html.HiddenFor(m => registerModel.MemberProperties[i].Alias)
}
else
{
@Html.EditorFor(m => registerModel.MemberProperties[i].Value)
@Html.HiddenFor(m => registerModel.MemberProperties[i].Alias)
}
<br />
}
}
@Html.HiddenFor(m => registerModel.MemberTypeAlias)
@Html.HiddenFor(m => registerModel.RedirectUrl)
@Html.HiddenFor(m => registerModel.UsernameIsEmail)
<button>Register</button>
</fieldset>
}
Can anybody please help me? everything saves apart from the dropdown list, sometimes after testing it, I cant load the members module in the umbraco back office because it errors saying it convert string to int, I have tried various combinations. Of course if I create the member in umbraco it saves the title.
Any help would be greatly appreciated
EDIT**
The Select box is being messed up by the Forum it should look like this.
I've got this working but it's a complete hackfest. You're using an ancient macro partial - I strongly suggest you create a proper controller and partial view and do this a more MVC way. You should check the values that are submitted are of the right type and sanitised. Whilst hacking around I was submitting the wrong data format and broke the member back end which is really not good.
I think the problem is you need to create a select box with the name and id so that it binds to the correct field in the database and we need to have it in the format (a property converter needs to fire - we need to store ["Mr"] not 1 or Mr
I've hacked a solution - it works but... I'm really not keen to post it here as someone will use it and I can see a security issue in it. I really think you need to go down a proper MemberRegisterController with models and proper binding.
Register Member Member Properties not saving.
Hi all, I am new to Umbraco and fairly new to MVC. Loving Umbraco but I am very stuck on creating a member.
I am using the register member snippet, I have added some A title & First name / surname to my member type. The Title value will not save from the drop down list no matter what I do. I have made a custom editor as per the comments in the snippet.
Custom Editor Code:
@using System.Collections @using Umbraco.Core; @using Umbraco.Core.Composing.CompositionExtensions @using Umbraco.Core.Models; @using Umbraco.Core.Services; @using Umbraco.Core.Services; @using Umbraco.Core.PropertyEditors; @using Umbraco.Core.Services.Implement @using Umbraco.Forms.Core.Providers.FieldTypes
@{
}
@* @{
} @**@
And here is the main signup view
Can anybody please help me? everything saves apart from the dropdown list, sometimes after testing it, I cant load the members module in the umbraco back office because it errors saying it convert string to int, I have tried various combinations. Of course if I create the member in umbraco it saves the title.
Any help would be greatly appreciated
EDIT** The Select box is being messed up by the Forum it should look like this.
@*
hi,
I've got this working but it's a complete hackfest. You're using an ancient macro partial - I strongly suggest you create a proper controller and partial view and do this a more MVC way. You should check the values that are submitted are of the right type and sanitised. Whilst hacking around I was submitting the wrong data format and broke the member back end which is really not good.
I think the problem is you need to create a select box with the name and id so that it binds to the correct field in the database and we need to have it in the format (a property converter needs to fire - we need to store ["Mr"] not 1 or Mr
I've hacked a solution - it works but... I'm really not keen to post it here as someone will use it and I can see a security issue in it. I really think you need to go down a proper MemberRegisterController with models and proper binding.
Steve
is working on a reply...