Activities of "EngincanV"

Hi @learnabp, as you've mentioned problem was related with dynamic-form creating 3 form-group for ExtraProperties. To be able to solve this problem, we've changed it as a form tag.

You can override the CreateModal and UpdateModal razor pages for Plan as below to fix this problem:

  • CreateModal.cs(Pages/Payment/Plans/CreateModal.cshtml)
@page

@using Microsoft.Extensions.Localization
@using Volo.Abp.Data
@using Volo.Payment.Admin.Web.Pages.Payment.Plans
@using Volo.Payment.Admin.Web.Pages
@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal
@using Volo.Abp.Localization
@using Volo.Abp.ObjectExtending
@inherits PaymentAdminPageBase
@model CreateModalModel
@inject IStringLocalizerFactory StringLocalizerFactory

@{
    Layout = null;
}

<form asp-page="/Payment/Plans/CreateModal">
    <abp-modal>
        <abp-modal-header title="@L["NewPlan"].Value"></abp-modal-header>
        <abp-modal-body>
            <abp-input asp-for="ViewModel.Name" />

            @foreach (var propertyInfo in ObjectExtensionManager.Instance.GetProperties<CreateModalModel.PlanCreateViewModel>())
            {
                if (!propertyInfo.Name.EndsWith("_Text"))
                {
                    if (propertyInfo.Type.IsEnum || !propertyInfo.Lookup.Url.IsNullOrEmpty())
                    {
                        if (propertyInfo.Type.IsEnum)
                        {
                            Model.ViewModel.ExtraProperties.ToEnum(propertyInfo.Name, propertyInfo.Type);
                        }

                        <abp-select asp-for="ViewModel.ExtraProperties[propertyInfo.Name]"
                                    label="@propertyInfo.GetLocalizedDisplayName(StringLocalizerFactory)"
                                    autocomplete-api-url="@propertyInfo.Lookup.Url"
                                    autocomplete-selected-item-name="@Model.ViewModel.GetProperty(propertyInfo.Name + "_Text")"
                                    autocomplete-selected-item-value="@Model.ViewModel.GetProperty(propertyInfo.Name)"
                                    autocomplete-filter-param-name="@propertyInfo.Lookup.FilterParamName"
                                    autocomplete-items-property-name="@propertyInfo.Lookup.ResultListPropertyName"
                                    autocomplete-display-property-name="@propertyInfo.Lookup.DisplayPropertyName"
                                    autocomplete-value-property-name="@propertyInfo.Lookup.ValuePropertyName">
                        </abp-select>
                    }
                    else
                    {
                        <abp-input type="@propertyInfo.GetInputType()"
                                   asp-for="ViewModel.ExtraProperties[propertyInfo.Name]"
                                   label="@propertyInfo.GetLocalizedDisplayName(StringLocalizerFactory)"
                                   asp-format="@propertyInfo.GetInputFormatOrNull()"
                                   value="@propertyInfo.GetInputValueOrNull(Model.ViewModel.GetProperty(propertyInfo.Name))"/>
                    }
                }
            }
        </abp-modal-body>
        <abp-modal-footer buttons="@(AbpModalButtons.Cancel | AbpModalButtons.Save)"></abp-modal-footer>
    </abp-modal>
</form>
  • UpdateModal.cshtml (Pages/Payment/Plans/UpdateModal.cshtml)
@page

@using Microsoft.Extensions.Localization
@using Volo.Abp.Data
@using Volo.Payment.Admin.Web.Pages.Payment.Plans
@using Volo.Payment.Admin.Web.Pages
@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal
@using Volo.Abp.Localization
@using Volo.Abp.ObjectExtending
@inherits PaymentAdminPageBase
@model UpdateModalModel
@inject IStringLocalizerFactory StringLocalizerFactory

@{
    Layout = null;
}

<form asp-page="/Payment/Plans/UpdateModal">
    <abp-modal>
        <abp-modal-header title="@L["Edit"].Value"></abp-modal-header>
        <abp-modal-body>
            <abp-input asp-for="Id"/>
            <abp-input asp-for="ViewModel.Name" />
            <abp-input asp-for="ViewModel.ConcurrencyStamp" />

            @foreach (var propertyInfo in ObjectExtensionManager.Instance.GetProperties<UpdateModalModel.PlanUpdateViewModel>())
            {
                if (!propertyInfo.Name.EndsWith("_Text"))
                {
                    if (propertyInfo.Type.IsEnum || !propertyInfo.Lookup.Url.IsNullOrEmpty())
                    {
                        if (propertyInfo.Type.IsEnum)
                        {
                            Model.ViewModel.ExtraProperties.ToEnum(propertyInfo.Name, propertyInfo.Type);
                        }

                        <abp-select asp-for="ViewModel.ExtraProperties[propertyInfo.Name]"
                                    label="@propertyInfo.GetLocalizedDisplayName(StringLocalizerFactory)"
                                    autocomplete-api-url="@propertyInfo.Lookup.Url"
                                    autocomplete-selected-item-name="@Model.ViewModel.GetProperty(propertyInfo.Name + "_Text")"
                                    autocomplete-selected-item-value="@Model.ViewModel.GetProperty(propertyInfo.Name)"
                                    autocomplete-filter-param-name="@propertyInfo.Lookup.FilterParamName"
                                    autocomplete-items-property-name="@propertyInfo.Lookup.ResultListPropertyName"
                                    autocomplete-display-property-name="@propertyInfo.Lookup.DisplayPropertyName"
                                    autocomplete-value-property-name="@propertyInfo.Lookup.ValuePropertyName">
                        </abp-select>
                    }
                    else
                    {
                        <abp-input type="@propertyInfo.GetInputType()"
                                   asp-for="ViewModel.ExtraProperties[propertyInfo.Name]"
                                   label="@propertyInfo.GetLocalizedDisplayName(StringLocalizerFactory)"
                                   asp-format="@propertyInfo.GetInputFormatOrNull()"
                                   value="@propertyInfo.GetInputValueOrNull(Model.ViewModel.GetProperty(propertyInfo.Name))"/>
                    }
                }
            }
        </abp-modal-body>
        <abp-modal-footer buttons="@(AbpModalButtons.Cancel | AbpModalButtons.Save)"></abp-modal-footer>
    </abp-modal>
</form>

Thanks @oshabani, I'll examine it and inform you asap.

I've tested just before and there is a problem indeed. Thanks for reporting the problem, it'll be fixed in the next release. FYI @learnabp

Can you send your application to engin.veske@volosoft.com?

Did you add DependsOn[typeof(ProjectControlDapperModule)] to your web module class as below:

//other depends on statements...
[DependsOn(typeof(ProjectControlDapperModule))]
public class MyWebModule : AbpModule 
{
    //...
}

But where can I get the update?

After we've updated the EasyCrm application, we'll inform you.

Can you create a new question and explain it in detail?

I posted a new ticket here https://support.abp.io/QA/Questions/2749/Getting-json-errors-while-deploying-code-on-testing-server

Thanks @safi, I close this issue since it's resolved.

No I didn’t have any extra properties

Thanks, I will test and inform you asap.

Hi @learnabp, I will test it and write you back asap. Did you add any extra properties to your Plan entity?

Why always auto close the ticket?

Hi @GerryGe, we generally close a ticket, when we create an issue for a problem in our internal repository, in another word when we take an action about the problem. We've created an issue for your question and keep it open until it is fixed.

Sorry for the misunderstanding. Best regards.

Showing 1161 to 1170 of 1343 entries
Learn More, Pay Less
33% OFF
All Trainings!
Get Your Deal
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.0.0-preview. Updated on September 12, 2025, 10:20