Activities of "alper"

joe@tronactive.com can you create a new topic. this doesn't seem lke a bug. and many people are registed to this topic and gets unrelated email notifications.

yes but you need to add the dependencies with DependsOn attribute https://github.com/abpframework/abp/blob/dev/modules/setting-management/src/Volo.Abp.SettingManagement.Web/AbpSettingManagementWebModule.cs

@DanielAndreasen is it v3.1? (v3.3 will release tomorrow) is it Angular?

It looks like a IDS4 configuration issue.

did you run the DbMigrator project? If you are using the same database as your previous projects you may get this exception. Be sure that you create a new database with the DbMigrator project.

This is the solution structure of the SaaS package

This module package is not a final application. You need to include this package in your final app. You can create a final app for each module (to be able to publish as individually) or you can put them all in a monolith app. In your case I think you want your SaaS package as a separate app.

You can create a new HttpApi.Host project using HttpApi project and you can put this app behind the Gateway (so that you can rate limit or load balance your API)

Host.Web and Blazor projects are the applications. These project has UI pages.

If you are using Angular then check out https://docs.abp.io/en/commercial/latest/ui/angular/dynamic-form-extensions

@Mohammad this document explains your question in details https://docs.abp.io/en/abp/latest/Best-Practices/Module-Architecture

Answer

@developer1 this is a know bug and it's already fixed. you can get the fixed version when the new release will be published

Answer

hi,

Suite works with the same version of your project. so if you updated suite to v3.3 then you also need to update your project to v3.3

there won't be a combobox even if you implement this. As I mentioned, this feature will come in the next releases. (4.1) what you can do is; you can replace the New Organisation razor page.

This document explains how to customize UI => https://docs.abp.io/en/abp/latest/UI/AspNetCore/Customization-User-Interface


If you create your own view in the Pages/Identity/OrganizationUnits directory (as embedded resource) it'll overwrite the existing page

Create CreateModal.cshtml file in your web project under Pages/Identity/OrganizationUnits/CreateModal.cshtml

Add the below code to your CreateModal.cshtml and make your customizations

CreateModal.cshtml

@page
@using Microsoft.AspNetCore.Mvc.Localization
@using Microsoft.Extensions.Localization
@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal
@using Volo.Abp.Identity.Localization
@using Volo.Abp.Identity.Web.Pages.Identity.OrganizationUnits
@using Volo.Abp.Localization
@using Volo.Abp.ObjectExtending
@model CreateModalModel
@inject IHtmlLocalizer<IdentityResource> L
@inject IStringLocalizerFactory StringLocalizerFactory
@{
    Layout = null;
}
<form asp-page="/Identity/OrganizationUnits/CreateModal" autocomplete="off">
    <abp-modal>
        <abp-modal-header title="@L["NewOrganizationUnit"].Value"></abp-modal-header>
        <abp-modal-body>
            <abp-input asp-for="OrganizationUnit.ParentId"/>
            <abp-input asp-for="OrganizationUnit.DisplayName"/>
            @foreach (var propertyInfo in ObjectExtensionManager.Instance.GetProperties<CreateModalModel.OrganizationUnitInfoModel>())
            {
                if (propertyInfo.Type.IsEnum)
                {
                    <abp-select asp-for="OrganizationUnit.ExtraProperties[propertyInfo.Name]"
                                label="@propertyInfo.GetLocalizedDisplayName(StringLocalizerFactory)">
                    </abp-select>
                }
                else
                {
                    <abp-input type="@propertyInfo.GetInputType()"
                               asp-for="OrganizationUnit.ExtraProperties[propertyInfo.Name]"
                               label="@propertyInfo.GetLocalizedDisplayName(StringLocalizerFactory)"
                               asp-format="@propertyInfo.GetInputFormatOrNull()"
                               value="@propertyInfo.GetInputValueOrNull(Model.OrganizationUnit.ExtraProperties[propertyInfo.Name])"/>
                }
            }
        </abp-modal-body>
        <abp-modal-footer buttons="@(AbpModalButtons.Cancel | AbpModalButtons.Save)"></abp-modal-footer>
    </abp-modal>
</form>

CreateModal.cshtml.cs

public class CreateModalModel : IdentityPageModel
    {
        [BindProperty]
        public OrganizationUnitInfoModel OrganizationUnit { get; set; }

        protected IOrganizationUnitAppService OrganizationUnitAppService { get; }

        public CreateModalModel(IOrganizationUnitAppService organizationUnitAppService)
        {
            OrganizationUnitAppService = organizationUnitAppService;
            OrganizationUnit = new OrganizationUnitInfoModel();
        }

        public virtual Task OnGetAsync(Guid? parentId)
        {
            OrganizationUnit.ParentId = parentId;
            return Task.CompletedTask;
        }

        public virtual async Task<IActionResult> OnPostAsync()
        {
            ValidateModel();

            var input = ObjectMapper.Map<OrganizationUnitInfoModel, OrganizationUnitCreateDto>(OrganizationUnit);
            await OrganizationUnitAppService.CreateAsync(input);

            return NoContent();
        }

        public class OrganizationUnitInfoModel : ExtensibleObject
        {
            [HiddenInput]
            public Guid? ParentId { get; set; }
            
            [Required]
            public string DisplayName { get; set; }
        }
    }
Showing 1601 to 1610 of 2067 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.1.0-preview. Updated on December 17, 2025, 07:08
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.