I have created a very basic create method for a new entity in my solution. It follows the same pattern as many of the other ones I have created. Yet it keeps failing with a validation error. I also cannot get the VS2017 debugger to hit or stop on the app service method. When I run the code in debug, you can clearly see that call to the app service is being executed, as the validation error comes back from the app service method.
Here is the chrome console showing the values being passed to the app service create method call. <a class="postlink" href="https://drive.google.com/file/d/0B5HAoiVVXzY7NTRYb1Y3UGhMZ0E/view?usp=sharing">https://drive.google.com/file/d/0B5HAoi ... sp=sharing</a>
Here is the chrome console showing the result of the app service call and validation error. <a class="postlink" href="https://drive.google.com/file/d/0B5HAoiVVXzY7MWFwdHFsMlpId1k/view?usp=sharing">https://drive.google.com/file/d/0B5HAoi ... sp=sharing</a>
As you can see the property listed in the validation message is clearly getting passed to the app service method. Yet it keeps reporting that field is missing?
Here is my CreateInput DTO. <a class="postlink" href="https://drive.google.com/file/d/0B5HAoiVVXzY7Z3NiTmsyTzc1RXM/view?usp=sharing">https://drive.google.com/file/d/0B5HAoi ... sp=sharing</a>
The log file in the application also shows the same error message. I have been debugging this for the past few days now and I, for the life of me, cannot figure out what I am missing here! Another really strange thing is how VS2017 debugger will not hit the breakpoints in the app service method. It acts as if the code is not even being executed. Yet the chrome console clearly shows the call is being made. One other note, I tested this app service method from the solution's swagger UI and it works perfectly from there!
WARN 2017-06-10 15:34:06,818 [7 ] nHandling.AbpApiExceptionFilterAttribute - Method arguments are not valid! See ValidationErrors for details.
Abp.Runtime.Validation.AbpValidationException: Method arguments are not valid! See ValidationErrors for details.
at Abp.Runtime.Validation.Interception.MethodInvocationValidator.Validate() in D:\Github\aspnetboilerplate\src\Abp\Runtime\Validation\Interception\MethodInvocationValidator.cs:line 94
at Abp.Runtime.Validation.Interception.ValidationInterceptor.Intercept(IInvocation invocation) in D:\Github\aspnetboilerplate\src\Abp\Runtime\Validation\Interception\ValidationInterceptor.cs:line 31
at Castle.DynamicProxy.AbstractInvocation.Proceed()
at Castle.Proxies.NurseHomeFundingComboAppServiceProxy.CreateNurseHomeFundingCombo(CreateNurseHomeFundingComboInput input)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Abp.WebApi.Controllers.Dynamic.Interceptors.AbpDynamicApiControllerInterceptor`1.Intercept(IInvocation invocation) in D:\Github\aspnetboilerplate\src\Abp.Web.Api\WebApi\Controllers\Dynamic\Interceptors\AbpDynamicApiControllerInterceptor.cs:line 44
at Castle.DynamicProxy.AbstractInvocation.Proceed()
at Castle.Proxies.DynamicApiController`1Proxy_7.CreateNurseHomeFundingCombo(CreateNurseHomeFundingComboInput input)
at lambda_method(Closure , Object , Object[] )
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass12.<GetExecutor>b__8(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Abp.WebApi.Uow.AbpApiUowFilter.<ExecuteActionFilterAsync>d__5.MoveNext() in D:\Github\aspnetboilerplate\src\Abp.Web.Api\WebApi\Uow\AbpApiUowFilter.cs:line 40
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Abp.WebApi.Validation.AbpApiValidationFilter.<ExecuteActionFilterAsync>d__5.MoveNext() in D:\Github\aspnetboilerplate\src\Abp.Web.Api\WebApi\Validation\AbpApiValidationFilter.cs:line 40
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Abp.WebApi.Auditing.AbpApiAuditFilter.<ExecuteActionFilterAsync>d__4.MoveNext() in D:\Github\aspnetboilerplate\src\Abp.Web.Api\WebApi\Auditing\AbpApiAuditFilter.cs:line 30
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Abp.WebApi.Security.AntiForgery.AbpAntiForgeryApiFilter.<ExecuteAuthorizationFilterAsync>d__10.MoveNext() in D:\Github\aspnetboilerplate\src\Abp.Web.Api\WebApi\Security\AntiForgery\AbpAntiForgeryApiFilter.cs:line 59
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Abp.WebApi.Authorization.AbpApiAuthorizeFilter.<ExecuteAuthorizationFilterAsync>d__7.MoveNext() in D:\Github\aspnetboilerplate\src\Abp.Web.Api\WebApi\Authorization\AbpApiAuthorizeFilter.cs:line 63
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.AuthenticationFilterResult.<ExecuteAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__0.MoveNext()
WARN 2017-06-10 15:34:06,826 [7 ] nHandling.AbpApiExceptionFilterAttribute - There are 1 validation errors:
WARN 2017-06-10 15:34:06,826 [7 ] nHandling.AbpApiExceptionFilterAttribute - The FundingComboName field is required. (FundingComboName)
:oops: You are correct. I did not notice that the plugin had some files. I thought it was part of core bootstrap function!
I added the missing CSS/JS bundles and it works!
However it seems to break the existing original modal. It clashes with the base bootstrap. It totally distorded my full width modal down into smaller modal and it was "Stacked" too. I will have to leave this idea for now and use another method.
In my table class I have setup a FK using the code below.
[Required]
[ForeignKey("ListValuesCF")]
public int ContributionFrequency { get; set; }
public virtual ListValues ListValuesCF { get; set; }
In my ResidentFundingListDto I have the following two properties. public int ContributionFrequency { get; set; } public string ContributionFrequencyName { get; set; } The second one holds the "text" value for the frequency. This is what I display on my JTable grid.
Then I used the code shown below to display the "text" value on my JTable grid.
public async Task<PagedResultDto<ResidentFundingListDto>> GetResidentFundingSources(GetResidentFundingInput input)
{
var query = from rf in _residentFundingRepository.GetAll()
select new ResidentFundingListDto
{
ActiveYesNo = rf.ActiveYesNo,
ContributionAmount = rf.ContributionAmount,
ContributionFrequency = rf.ContributionFrequency,
ContributionFrequencyName = rf.ListValuesCF.ListText, //This is a join to table named ListValues
CreationTime = rf.CreationTime,
Id = rf.Id
};
query = query.WhereIf(!input.Filter.IsNullOrWhiteSpace(), R => R.ResidentName.Contains(input.Filter));
var resultCount = await query.CountAsync();
var results = await query.OrderBy(input.Sorting).PageBy(input).ToListAsync();
return new PagedResultDto<ResidentFundingListDto>(resultCount, results);
}
}
<cite>ismcagdas: </cite> Hi,
Is the type of "viewModel" string ? If so, you need to pass it like this
return View("~/Areas/Mpa/Resident/EditResident", (object)viewModel);
No viewModel is an actual viewmodal object.
I have a new requirement that needs me to switch my "profile" page back to a normal page and NOT a modal. So added the below code in the controller.
public async Task<ActionResult> EditResident(int id)
{
//Call app service here and build view model (removed for forum post)
return View("~/Areas/Mpa/Resident/EditResident", viewModel);
}
In my Index.js file for JTable I added the below code to open the view as a page:
actions: {
title: app.localize('Actions'),
width: '5%',
sorting: false,
list: _permissions.edit || _permissions.delete,
display: function (data) {
var $span = $('<span></span>');
if (_permissions.edit) {
$('<button class="btn btn-default btn-xs" title="' + app.localize('Edit') + '"><i class="fa fa-edit"></i></button>')
.appendTo($span)
.click(function () {
open("/Resident/EditResident/" + data.record.id, "_self")
});
}
return $span;
}
},
When this runs I keep getting the Asp.Net view not found error page (see below). I have tried just the view name and full path, but neither seems to work?
The view '~/Areas/Mpa/Resident/EditResident' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Areas/Mpa/Resident/EditResident
I was reviewing the Metronic docs provided and wanted to implement "Stackable" modals (shown below) in my ASPNETZERO solution. [attachment=0:3lvo2x4q]Screenshot (27).png[/attachment:3lvo2x4q] I copied over the example HTML into my page. I am able to open a second modal from my existing "Edit" modal. However, when I click the close button on the second modal, it closes both modals. How can I manage this, given that the ASPNETZERO modals are working through the modalmanager.js file. Is there something additional that needs to be done in order to make it work in ASPNETZERO?
I have read the ABP documents on localization (<a class="postlink" href="https://www.aspnetboilerplate.com/Pages/Documents/v1.5.2/Localization">https://www.aspnetboilerplate.com/Pages ... calization</a>). I could not find any specific notes related to dates in the docs.
I changed the default language in my Chrome browser to be English UK. I ran my app and the dates are still displayed in USA format (MM/DD/YYYY). The language setting in my ABP solution is set on English UK, yet the dates still do not reflect the UK format (DD/MM/YYYY). Is there something additional that needs to be done to localize the dates?
I have another question on this issue..
I have my modal and multiple service calls working just fine from the one modal save button. After the save button click, the modal is getting closed. I also am able to disable the modal closing. However a new issue, for each one of the "sections" on this large modal, after a new record is inserted I need to refresh my grids, with the newly inserted record. Right now the only way this works is by closing the modal and asking the user to click edit again to render the modal back. Is there a way I keep the modal open and still refresh all my grids on the various sections in the modal? Keep in mind, the entire modal is bound to one single view model which contains multiple list objects for all the various sections displayed on the modal.
No I need a version that specifically targets .NET Core 1.0. The hosting environment we have to deploy to only supports .NET Core 1.0 right now. We cannot use .csproj files. They have to be project.json files.
Is it possible to get an ABP template download based on .net core 1.0? I don't see the option on the download page?